【发布时间】:2013-07-30 23:01:55
【问题描述】:
我想在 LAN 网络中进行扫描以查找链接的设备。 我正在 IOS 中为 IPAD 开发一个应用程序 我该怎么办???
【问题讨论】:
-
MMLanScan 经常崩溃。每当您扫描网络时,它都会崩溃。特别是如果您一次扫描 2-3 次。它会崩溃
标签: ios networking device network-scan
我想在 LAN 网络中进行扫描以查找链接的设备。 我正在 IOS 中为 IPAD 开发一个应用程序 我该怎么办???
【问题讨论】:
标签: ios networking device network-scan
因为这些是移动设备,所以我假设您想在无线网络上查找设备。从理论上讲,由于 wifi 使用共享介质进行通信,您可以被动地侦听流经网络的流量并收集有关客户端的数据,而无需发送任何数据包。这就是通常所说的混杂模式。实际上,网络适配器驱动程序有 99% 的机会只允许您获取发往您的 MAC 地址的流量。在这种情况下,您将需要主动扫描并非 100% 准确的网络子网,并且根据网络的实施方式,可能会被视为攻击。
简单的扫描方法是向子网中的每个 IP 地址发送 ICMP 请求 (ping),并从发回 echo 回复的人那里收集数据。这是不可靠的,因为某些主机即使处于活动状态也不会响应 ICMP 回显请求。您需要做的第一件事是找出您自己的 IP 地址和子网掩码,并计算子网中可能的地址范围。该范围是通过使用逻辑 AND 运算符获得的,其中操作数是您的 IP 地址和子网掩码的二进制值。这是程序中的一个示例,该程序针对具有 255.255.255.0 子网掩码(CIDR 表示法中的 192.168.1.1/24)的典型 192.168.1.1 子网计算此值:
Address: 192.168.1.1 11000000.10101000.00000001 .00000001
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111 .00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000 .11111111
Network: 192.168.1.0/24 11000000.10101000.00000001 .00000000
Broadcast: 192.168.1.255 11000000.10101000.00000001 .11111111
HostMin: 192.168.1.1 11000000.10101000.00000001 .00000001
HostMax: 192.168.1.254 11000000.10101000.00000001 .11111110
然后您将遍历范围并 ping 每个地址。您可以考虑的另一件事是侦听诸如 ARP 之类的广播流量并以这种方式收集一些信息。我不知道您要做什么,但您无法通过这种方式获得很多有用的信息,除了主机网络适配器的供应商。
【讨论】:
查看我的LAN Scan on Github。它完全符合您的要求。
【讨论】:
Bonjour 自 2002 年以来一直存在,看看吧!
我的意思是,看看他们现在的标语:
Bonjour,也称为零配置网络,可以使用行业标准 IP 协议自动发现本地网络上的设备和服务。 Bonjour 使用可从 Cocoa、Ruby、Python 和其他语言访问的复杂且易于使用的编程接口,让发现、发布和解析网络服务变得容易。
【讨论】:
我最近使用了MMLANScan,非常好。它会发现 IP、主机名和 MAC 地址。
【讨论】: