【问题标题】:Get Host-IPs of wireless network获取无线网络的 Host-IP
【发布时间】:2012-11-05 16:16:24
【问题描述】:

可能重复:
Get all IP-Hosts in Lan from mobile device

如何以编程方式获取无线网络中的所有主机?

我知道我正在使用的 wlan,并且我已连接到它。现在我想显示主机列表(或者至少是它们的 IP 地址)。

我怎样才能做到这一点,如果我在具有紧凑框架的 windows mobile 上工作并想要这样做,有什么特别之处吗?

【问题讨论】:

  • 两小时前你问了几乎同样的问题:stackoverflow.com/questions/13233808/…
  • 首先想到的是枚举子网中的所有 ip 地址并尝试 ping 它们(或者最好尝试一些端口扫描来查找已知服务)。

标签: c# .net compact-framework wifi


【解决方案1】:

【讨论】:

  • 不错的方法,但这些解决方案都不能确保您获得 wlan 中的所有主机。本地防火墙通常会阻止 icmp、ping 和 wmi 请求。
  • 在一个局域网中获取所有主机非常困难,最好的方法是对已知服务(wmi、netbios、ICMP 等)进行端口扫描,但仍然可能会遗漏一些东西。网络扫描仪的编写并不简单。 (并保持最新)
【解决方案2】:

获取网络中所有主机的唯一方法是使用网络扫描。

您可以 ping 设备所在网络的所有有效 IP。

或者您可以在本地 DNS 服务上检查网络的每个有效 IP 以获取名称,并列出您找到的具有相应 IP 的不同名称。

如果子网掩码对应的位与设备拥有的 IP 相同,则 IP 有效。

【讨论】:

    【解决方案3】:

    简单的答案是:你不能。更详细地说:除非你有一个协议来发现你的主机,否则你不能,例如,NetBIOS。您可以通过 pInvoke 调用 NetBEUI(NetBios 用户界面)。看看这个之前的帖子:

    Netbios support in .NET?

    您可以使用的另一种方法是 ping WLAN 范围内的所有 IP 地址并等待响应。这不是一个好方法,因为它非常消耗资源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-18
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多