2012-03-27 262 views
1

我是一名首发的C/C++程序员。Ping网络并获取mac地址

我想要的是以下东西:
启动程序,开始ping整个网络并保存活动的地址。完成后,从以前存储的IP地址获取MAC地址,并将其保存。

完成后,循环浏览MAC地址列表,找到1个MAC地址,找到时发出,喊出他发现它。

类似的东西,我想做。

我搜索了很多,但没有真正帮助我。

所以我的问题,我需要什么(哪些库,哪些语句),所以我可以编程。

请注意,我的操作系统目前是Windows,但我希望将来它也能与Linux兼容。

+0

我提示将检查[Boost Asio](http://www.boost.org/libs/asio) – Default 2012-03-27 21:18:28

+0

我会检查后面 – Mathlight 2012-03-28 05:25:09

回答

0

使用的命令行如arp -a 192.168.0.100

arp工具从C++这取决于您的操作系统,在Windows上是SendArp()

来扫描局域网内的所有机器使用nmap - 看How do I get a list of the active IP-addresses, MAC-addresses and NetBIOS names on the LAN?

+0

这是一个开始,但首先我需要ping整个网络,并找到actifs之一(而且速度很快,并不是每个主机都等待8秒钟他找不到 – Mathlight 2012-03-27 21:05:46

+0

@TWCrap:如果你不愿意等待他们的回复,你无法可靠地确定网络上的设备。 – dreamlax 2012-03-27 21:07:08

+0

@TWCrap,如果您知道机器响应速度有多快,您可以更改ping/arp的超时时间。扫描所有机器的更好方法是nmap http://stackoverflow.com/questions/90755/how-do-i-get-a-list-of-the-active-ip-addresses-mac-addresses-and- netbios名称,但你仍然需要等待他们 – 2012-03-27 21:08:18