除UDP广播或多播之外,我还可以在WiFI网络上使用哪些其他方法来发现计算机?

时间:2010-03-25 18:01:26

标签: networking tcp udp wifi discovery

我已经实现了一个简单的UDP ping / pong协议来发现连接到同一个WiFI路由器的其他计算机。这在许多WiFI和以太网路由器上运行良好,但是当我在街上试一试时,许多公共WiFI网络似乎禁用了UDP广播/多播,或者完全禁用了UDP。

我还有哪些其他选择来发现连接到WiFI路由器的计算机? (我想在我的网络成员之间创建一个Ad-Hoc网络,但这是不可能的)

我正在考虑强制TCP尝试(试图打开我的子网上所有可能的IP的连接),但这将是非常昂贵的,我将不得不循环几次仍然没有找到最近连接到网络的每台机器

2 个答案:

答案 0 :(得分:6)

没有简单的方法只能发现“计算机”。但是,您可以使用ARP请求找到几乎所有网络设备。

步骤如下:

  1. 连接到网络
  2. 获取网络IP地址范围(例如:“192.168.0.0/24”)
  3. 发送此范围内每个可能地址的ARP请求(“192.168.0.1”=>“192.168.0.254”)
  4. 等待回复
  5. 通常,网络设备会响应ARP请求,因为IPv4需要ARP才能工作。

    您可以找到其他资源here

    注意:您可能需要具有管理员权限(UNIX上的root用户)才能执行此操作。发送伪造的ARP请求通常需要提升权限。

    另一种方法是发送广播ping(在UNIX操作系统上ping -b 192.168.0.255)。但Windows计算机(以及其他一些设备)通常不会响应此类ping。

答案 1 :(得分:0)

你可以试试bonjour

此外,在许多接入点上,可以禁用客户端到客户端的通信。这可能是你在测试过程中遇到的问题。