回复Ping广播

时间:2011-12-23 19:09:23

标签: c++ visual-c++ network-programming ping icmp

我正在用.NET c ++编写程序。我正在本地网络上发送广播ping。我的所有目标设备都能够响应ping广播,实际上我在Wireshark中跟踪他们的所有响应。我的目标是检索所有响应站的IP地址。

问题是,Microsoft的API不包括在给定的时间间隔内记录所有回复的支持。像IcmpSendEcho这样的功能只是在第一次回复时返回(虽然API声明它可以记录多个icmp回复),这是已知的问题和谷歌搜索和搜索后,每个人都报告这些功能的相同问题。

我可以做些什么来实现我的目标,而不会过于低级别的回复提取? Windows是否拥有某种icmp历史记录? 我会很感激任何建议!

1 个答案:

答案 0 :(得分:0)

 1) First call FlushIpNetTable.
 2) Send the ping and ignore the response.
 3) Read the ARP table using the GetIpNetTable call.