2

我想在 LAN 网络中进行扫描以查找链接的设备。我正在 IOS 中为 IPAD 开发应用程序我该怎么做???

4

4 回答 4

15

因为这些是移动设备,所以我假设您想在无线网络上查找设备。从理论上讲,由于 wifi 使用共享介质进行通信,您可以被动地侦听流经网络的流量并收集有关客户端的数据,而无需发送任何数据包。这就是通常所说的混杂模式。实际上,网络适配器驱动程序有 99% 的机会只允许您获取发往您的 MAC 地址的流量。在这种情况下,您将需要主动扫描不是 100% 准确的网络子网,并且根据网络的实施方式,可以将其视为可能的攻击。

扫描的简单方法是向子网中的每个 IP 地址发送 ICMP 请求 (ping),并从发回回显回复的人那里收集数据。这是不可靠的,因为某些主机即使处于活动状态也不会响应 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 之类的广播流量并以这种方式收集一些信息。我不知道您要做什么,但是您无法通过这种方式获得很多有用的信息,除了主机网络适配器的供应商。

于 2013-07-30T17:35:44.443 回答
10

检查我在 Github 上的 LAN 扫描。它完全符合您的要求。

于 2014-02-24T15:48:00.070 回答
5

我最近使用了相当不错的MMLANScan 。它发现 IP、主机名和 MAC 地址。

于 2016-11-03T22:33:09.993 回答
4

Bonjour have been around since 2002, have a look at it!

I mean, just look at their current tagline:

Bonjour, also known as zero-configuration networking, enables automatic discovery of devices and services on a local network using industry standard IP protocols. Bonjour makes it easy to discover, publish, and resolve network services with a sophisticated, yet easy-to-use, programming interface that is accessible from Cocoa, Ruby, Python, and other languages.

于 2014-05-27T15:23:56.550 回答