【问题标题】:Getting list of local IP addresses with winapi使用winapi获取本地IP地址列表
【发布时间】:2023-03-15 15:51:01
【问题描述】:

如何使用 WINAPI 获取连接到 LAN 的所有本地 IP 地址的列表?我通过netapi32.dll搜索并没有成功。有什么想法吗?

【问题讨论】:

  • 你是指当前机器的多个IP地址,还是局域网/域中所有机器的IP地址?
  • 局域网内所有机器的IP地址。
  • 得到自己机器的IP和网络掩码后,就可以计算出其他机器的地址了。
  • @Mayhem 这很有趣,但它是如何完成的呢?能不能给我写个代码,或者推荐个教程?

标签: c++ windows winapi networking network-programming


【解决方案1】:

无法保证获取连接到本地网段的所有设备的地址。机器可能被防火墙和丢弃请求,或者在检查机器未配置访问的不同子网中具有 IP 地址。

您可以通过向本地子网上的每个 IP 地址发送 ping 请求(使用 IP Helper 库中的 ICMPSendEcho())并检查响应来查找子网上所有响应 ping 的设备。

【讨论】:

  • IIRC,你可以执行广播 ICMP ping 吗?
  • @MartinJames 从技术上讲是的,但我认为 Windows 本身并不支持它。它可能需要原始套接字并手动创建 ICMP 数据包。
猜你喜欢
  • 2011-02-10
  • 2011-10-11
  • 1970-01-01
  • 2012-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多