c++ - 回复 Ping 广播

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

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

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

我可以做些什么来实现我的目标而又不会太低级别以获取回复? Windows 是否保存某种 icmp 历史记录? 如果有任何建议,我将不胜感激!

最佳答案

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

关于c++ - 回复 Ping 广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8619768/

相关文章:

c++ - 使用 CLion 调试 Node 插件

c++ - 如何在编译器不破坏堆栈的情况下将可变参数与 __stdcall 一起使用

c - openssl自定义扩展回调函数

java - PlainDatagramSocketImpl(IOException : Operation not permitted)

c++ - 灵活组合字符串的简洁方法?

c++ - 检查格式并使用 sscanf c++ 获取数字

c# - 应用程序域用于什么?

c++ - 设置 cl.exe 的输出路径

c++ - MFC 自定义 Tab 键事件处理程序

仅使用 MAC 地址在两个系统之间进行通信