【问题标题】:Get list of devices on LAN in C在 C 中获取 LAN 上的设备列表
【发布时间】:2012-02-21 17:21:48
【问题描述】:

我想获取连接到本地网络的可用设备列表(它们的 IP 地址或主机名应该没问题)。我在 C# 中有一些示例,但我找不到任何使用 C/C++ 的示例。我熟悉 BSD 套接字 API,只是为了澄清一下。

我有一个“存根”的想法:也许我应该确定我 LAN 上的设备可能属于的 IP 地址范围,然后确定它们是否存在。 G。回应 PING,或类似的东西。我怎样才能做到这些?

我希望我的应用程序在 Linux 和 iOS 上运行。这就是为什么我更喜欢 BSD 套接字,或者最多是 Foundation/GNUstep(尽管它们是用 Objective-C 编写的)。

【问题讨论】:

  • 你的平台是什么? C 没有任何内置的网络支持。
  • 我会先询问操作系统,它可以分别在 IPv4 和 IPv6 的 ARP 缓存和邻居缓存中看到什么。
  • 使用nmap怎么样nmap.org - 已经写好了
  • 我认为捕获命令行程序的标准输出通常被认为是错误的解决方案。但是我会看它的源代码(不过我不确定我会理解它)。
  • 确实,这是一个非常糟糕的解决方案。

标签: c sockets networking network-programming


【解决方案1】:

您也可以向 224.0.0.1 发送 ICMP 回显请求数据包。这是每个节点都应响应的特殊全节点多播地址(除非防火墙规则或网络策略设置阻止它)。

【讨论】:

猜你喜欢
  • 2012-05-05
  • 2021-04-18
  • 1970-01-01
  • 2018-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多