通过 ARP 协议获取局域网内指定 IP 地址的机器的 MAC 地址
2015-10-08 11:51
726 查看
http://blog.qdac.cc/?p=2902
unit Unit5; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,WinSock; type TForm5 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; function SendARP(ipaddr: ulong; temp: dword; ulmacaddr: pointer; ulmacaddrleng: pointer): dword; stdcall; external 'Iphlpapi.dll' Name 'SendARP'; function IP2Mac(ipaddr:ULong):String; var Form5: TForm5; implementation {$R *.dfm} function IP2Mac(ipaddr:ULong):String; var AMac: array [0 .. 5] of BYTE; l: ulong; r: integer; begin l:=6; r := SendARP(ipaddr, 0, @AMac, @l); if r=0 then Result:=Format('%2.2x-%2.2x-%2.2x-%2.2x-%2.2x-%2.2x', [AMac[0], AMac[1], AMac[2], AMac[3], AMac[4],AMac[5]]) else Result:=''; end; procedure TForm5.Button1Click(Sender: TObject); begin // ShowMessage(IP2Mac(inet_addr(PAnsiChar('10.0.0.100')))); end; end.
相关文章推荐
- 使用mutt及msmtp来发送邮件
- 【.Net码农】RDLC(Reportview)报表直接打印,支持所有浏览器,客户可在linux下浏览使用
- Java____赋值顺序,调用顺序,内部类衍生问题:赋值和构造器、代码块谁先执行?+4种代码块
- ACE前摄器Proactor模式
- HTML5之Canvas绘图——使用Canvas绘制图形的基本教程
- 嘿嘿
- Unity3D开发者快速上手Unreal Engine 4指南
- ACE_Message_Block功能简介
- 如何自定义 maven中的archetype
- imageloader详解
- ios开发编写规范总结
- POJ 2195 Going Home
- Linux下修改Mysql数据库存放路径
- 哈哈,恭喜
- lvs+keepalived+nginx负载搭建
- Python re正则表达式
- poj 1149 pigs(最大流)
- ACE接受器-连接器模式
- ECMAScript5.1
- Linux系统下用find命令查找最近修改过的文件