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

时间:2014-07-17 13:02:05

标签: android networking udp zeromq jzmq

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

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

1 个答案:

答案 0 :(得分:3)

原理

A部分

必须管理每个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主机上的所有端口是第二个问题的愚蠢暴力方法。

扫描一部分“合理”的子集可以节省您在同行识别上的时间和精力。

使用更智能,更活跃的“可见性自我广告政策”将为您节省更多。

<强>解决方案

多方系统架构上的

决定,是否将使用单独的被动扫描,中央/分布式代理辅助扫描或主动自我广告策略来构建和维护实时记录。邻近的主机注册。

ZeroMQ 本身为智能解决方案带来了大量功能,而愚蠢的解决方案必须等到完全成熟的ZeroMQ服务准备就绪。低水平的L2 / L3检查必须在ZeroMQ首先.bind() / .connect()

之前取得成果

毋庸置疑,未协调的CSMA / CD网络并不能保证所有L2可见主机都具有“兼容”L3-ip-adddress(属于/具有相同的L3-ip-network地址)。 / p>

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