局域网内,如何根据对方网卡MAC地址得到对方的IP地址?(200分)

  • 主题发起人 主题发起人 交通灯
  • 开始时间 开始时间

交通灯

Unregistered / Unconfirmed
GUEST, unregistred user!
局域网内,如何根据对方网卡MAC地址得到对方的IP地址?
 
帮你顶一下! 我再想想看
 
汗! 搞不出来,
如果你的局域网有DHCP服务器建议上去查一下列表就出来了

如果没有dhcp服务器你就用net view 命令看一下有那些工作站,
然后挨个用nbtstat -A hostname 一个个的看,看那个MAC地址和你要的相等

 
我是希望在程序中实现的。最好能有delphi代码。
 
如果是特定的网段,就遍历ip,通过ip来查吧。
tcp/ip应该是以ip为主导,通过ip来获取其他信息。如果能直接通过mac地址找到ip,那也只能是访问dhcp服务器得到。
 
可以通过未公布的IPHLPAPI.DLL中的函数来实现,,,这个DLL中就只有一个函数,这个函数可以干的事情多了,可以通过它做出如“网络执政官”这样的软件来,呵呵,,函数名我忘了,,论坛上应该可以搜索到的,,要不你可以去新的MSDN上找,,一定有的,,,,,,好像函数名就是IPHLPAPI,,,,
 
不好意思,用工具吧

ccproxy,mac工具到天空软件站下载。
 
在TCP/IP协议族中有一个协议叫ARP(地址解析协议),这个协议就是用来解决这种问题的,
以下是实际在网络上截获的一个ARP数据包:
================================================
目标地址: FF FF FF FF FF FF //广播地址
源地址: 00 09 6B 04 2D 80 //发送地址
帧类型: 08 06 //ARP协议标示
硬件类型: 00 01 //Ether
协议类型: 08 00 //IP协议
硬件地址长度: 06 //MAC长度为六
协议地址长度: 04 //ipv4
操作码: 00 01 //看解释
发送者硬件地址:00 09 6B 04 2D 80 //
发送者协议地址:C0 A8 00 04 //192.168.0.4
目标者硬件地址:00 00 00 00 00 00
目标者协议地址:C0 A8 00 02 //192.168.0.2

操作码解释:(网络顺序)
0001: 请求解析数据包中的目标协议地址
0002: 应答协议地址->硬件地址解析请求
0003: 请求解析数据包中的目标硬件地址
0004: 应答硬件地址->协议地址解析请求
=======================================================
由计算机上发出地址解析数据包,然后等待一段时间如果目标地址返回响应数据包,则存在
相应的地址,如果没有返回则说明网络上不存在与该地址匹配的设备
我的数据是用单片机截获的,至于怎么在windows下截获你可以查找相关资料
 
to TK128
能帮助解释一下发送者协议地址:C0 A8 00 04的意思吗?
 
to bh812:
协议设计是应该能运行于不同环境的,上面的数据包中的协议字段已经指出协议是IP协议,
所以:协议地址就是IP地址
 
应该不可能。
 
后退
顶部