(即在局域网内,知道IP 查MAC 地址,知道MAC 地址查IP) 你可以使用arp 程序(WINDOWS 自带) eg: arp -a 192.168.0.1 如果使用程序查的话,你需要去实现一个ARP、RARP 协议的软件 如果只是查看一下对应关系,可以登陆到以太网交换机上查看IP 和 MAC 之间的对应 在Windows9x 中,可按如下思路进行: 1、建立局域网内IP 地址--MAC 地址对照表: 调用icmp.dll 中的IcmpSendEcho 函数对一个地址发一个ping 操作。 成功后马上调用Iphlpapi.dll 中的GetIpNetTable 函数来取所有的ARP 表,从中找出 所关心的MAC 地址。 保存 IP 地址和 MAC 地址。 依此类推,取得局域网内所有IP 地址和 MAC 地址的对照表。 (可取范围为 IPADDR and SUBMASK 子网范围内的对照表) 2、做一个查询界面。 Windows2000 中,应该可以更简单一些。因为它支持更多的函数如SendARP。 IP to MAC 较容易: 方法 1. DOS 命令: nbtstat -a IP 方法 2. DOS 命令: ping IP 然后 arp -a 方法 3. 仿照nbtstat,向对方的137 端口发数据包,包的内容如下(C 代码) BYTE b[50]={0x0,0x00,0x0,0x10,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0, 0x20,0x43,0x4b,0x41,0x41,0x41,0x41,0x41,0x41,0x41, 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, 0x41,0x41,0x41,0x0,0x0,0x21,0x0,0x1}; (这是发 nbtstat 命令后用IPMan 截获的),对方会向你返回一个数据包, 其中有对方的工作组,主机名,用户名,MAC 地址。当然,返回包的格式要 自己分析,也可以查RFC 文档。你自己的端口可以随便取一个值。 方法 4.在win9x 下可用IPMan 直接发 ARP。 方法 5.在win2000 下可用SendArp()直接发 ARP。 ---------------------------------------------------------------- MAC to IP 似乎较困难。 Win9x 下 IPMan 有此项功能,但我试了一下似乎不行。 来自:zw84611, 时间:2001-10-7 19:37:00, ID:659172 发出去了,是用VC 写的。因为我不喜欢Delphi5 的udp 控件。其实用delphi 也一样。很 简单的,就是向对方137 端口发内容为 BYTE b[50]={0x0,0x00,0x0,0x10,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0, 0x20,0x43,0x4b,0x41,0x41,0x41,0x41,0x41,0x41,0x41, 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, 0x41,0x41,0x41,0x...