资源介绍
本文分析了利用SendARP方法(基于ARP协议)来获取远程主机MAC地址的缺陷,设计了一种利用NetBIOS Name Service来快速获取远程主机MAC地址的方法,
* 主机A向主机B发送“UDP-NetBIOS-NS”询问包,即向主机B的137端口,发Query包来询问主机B的NetBIOS Names信息。
* 主机B接收到“UDP-NetBIOS-NS”询问包,假设主机B正确安装了NetBIOS服务. 而且137端口开放,则主机B会向主机A发送一个“UDP-NetBIOS-NS”应答包,即发Answer包给主机A。
获取(扫描)MAC地址的效率较高。
一般针对某远程主机一次发送一个“UDP-NetBIOS-NS”询问包(当然具体发送几个,可以在程序中自己设定)即可,而不像其他也可获取MAC地址的方法,例如Winsock
API函数Gethostbyaddr或者Netbios函数,执行的时候会发送多个“UDP-NetBIOS-NS”询问包,这样不但影响了获取速度,而且重复发送没必要。
当然,该方法除了可以获取MAC地址外,还可以很容易地获取远程主机的NetBIOS
Name信息(即主机名、所在工作组等)。而且在本程序的基础上,也很容易地实现对指定IP地址段的MAC地址扫描,即批量获取MAC地址,不再赘述。
本程序使用VC++ 6.0设计完成,程序设计者:石妞,联系方式:13832377220
- 上一篇: VC6.0......
- 下一篇: 用MFC如何获取本地主机名和IP地址