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

Gub*_*ron 0 networking udp tcp discovery wifi

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

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

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

ere*_*eOn 6

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

步骤将是:

  1. 连接到网络
  2. 获取网络IP地址范围(例如:"192.168.0.0/24")
  3. 发送此范围内每个可能地址的ARP请求("192.168.0.1"=>"192.168.0.254")
  4. 等待回复

通常,网络设备响应ARP请求,因为IPv4需要ARP才能工作.

您可以在此处找到其他资源.

注意:为了做到这一点,你可能需要具有管理员权限(UNIX上的root用户).发送伪造的ARP请求通常需要提升权限.

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