使用ZeroMQ发现同一wifi网络中的其他设备IP:端口



我想使用ZeroMQ在同一wifi网络中发现所有Android设备的IP和端口?

我的应用程序基本上连接所有设备在同一个wifi网络(不需要互联网)和消息。一旦ip和端口我知道我发送消息成功,但如何知道所有设备的互联网协议(ip)使用ZeroMQ?

原理

部分)

每个IEEE 802。x CSMA/CD网络"碰撞域"(wifi AP/SSID就是这样一个)必须进行管理才能正常工作。因此, Address Resolution Protocol [ARP] 将帮助您查找所有ISO-OSI-Layer-3 IP地址。Wifi接入点[AP]主机,所有活动设备注册并握手,是开始的选择。

HG520i> ip arp status
received 54205 badtype 0 bogus addr 0 reqst in 12105 replies 196 reqst out 14301
cache hit 63152696 (24%), cache miss 19455672 (23%)
IP-addr         Type           Time  Addr              stat iface
192.168.0.230   10 Mb Ethernet 290   00:15:af:e6:b1:79 41   enif0
192.168.0.62    10 Mb Ethernet 300   00:0c:29:98:d4:3b 41   enif0
192.168.0.55    10 Mb Ethernet 300   00:27:0e:07:c5:9e 41   enif0
192.168.0.255   10 Mb Ethernet 0     ff:ff:ff:ff:ff:ff 43   NULL
num of arp entries= 4

B部分)

扫描所有已知IP主机上的所有端口是解决第二个问题的一种愚蠢的蛮力方法。

只扫描"合理"的子集可以节省你在同行识别上的时间和精力。

使用一些更聪明的,主动的"可见性自我广告策略"将为您节省更多。

<<h2> 解决方案/strong>

决定在多方系统架构上,是否使用单个被动扫描,中央/分布式代理辅助扫描或主动自我广告策略来建立和维护相邻主机寄存器中的实时记录。

ZeroMQ本身为智能解决方案带来了很多功能,而哑力解决方案将不得不等待完全成熟的ZeroMQ服务准备就绪。低水平的L2/l3检查必须在ZeroMQ能够首先.bind()/.connect()之前取得成果

不用说,不协调的CSMA/CD网络并不能保证所有l2可见的主机都具有"兼容的"l3 -ip地址(将属于/具有相同的l3 -ip网络地址)。

因此,如果没有真正的低级嗅探器,您永远不会知道所有的IP地址。

最新更新