ios - 如何扫描 LAN 网络中的设备

标签 ios networking device network-scan

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

最佳答案

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

扫描的简单方法是向子网中的每个 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)并以这种方式收集一些信息。我不知道你想做什么,但你不能通过这种方式获得很多有用的信息,除了主机网络适配器的供应商。

关于ios - 如何扫描 LAN 网络中的设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17953119/

相关文章:

ios - 在 ios barchart 3.0 中标记 xAxis

ios - 在 iPhone 的 UITableViewController 中列出歌曲?在 Storyboard 中工作,并非没有它

java - 测试连接无法正常工作

node.js - 将 Unity 游戏连接到 Digital Ocean Node.js 服务器

ios - 如何获取特定的标签帖子(更新)

linux - IPTables 丢弃带有 IP header 标识的 UDP 数据包

c++ - O_DIRECT 与 AIO_RAW

android - 通过以太网在设备上运行 Android 应用程序

pointers - 复制包含指向 CUDA 设备的指针的结构

iphone - UITextField 在 UITableView 中滚动时清除 - 自定义单元格