iPhone上的ARP请求

9

我正在尝试在iPhone上生成ARP(地址解析协议)请求数据包,并监听返回的响应。

通过Google搜索,我陷入了死胡同。为了发送逻辑层数据包,我需要类似原始套接字的东西,但需要超级用户权限才能创建它们。我试图避免越狱我的手机。

有许多C代码可以做到这一点,但由于权限问题,我找不到任何可以转换为iOS的内容。

当我决定Wireshark一下我的一些网络发现应用程序时,我已经准备放弃了。特别是“Fing”和“Pinggy”(顺便说一句,致敬Fing和Pinggy...太棒了!)

https://itunes.apple.com/us/app/pinggy/id562201096?mt=8

https://itunes.apple.com/us/app/fing-network-scanner/id430921107?mt=8

与这些iPhone应用程序一起运行Wireshark,显示它们从XXX.XXX.X.0一直到XXX.XXX.X.255进行ARP扫描。我没有看到任何同时发送“ARPs”的ICMP数据包。这使我相信,在iOS上发送和接收ARP数据包确实是可能的。

我考虑过ping扫描,假设它会自动生成ARP请求。但是,我仍然需要一个原始套接字来侦听响应,对吗?

问题:有什么可用于发送/接收逻辑层数据包的工具?特别是用于发送接收ARP数据包?我是否忽略了任何基本内容?

提前致谢!


你需要听取响应吗?为什么不直接观察系统的ARP表呢? - David Schwartz
嗨,大卫,感谢回复。之前我在进行ping扫描后获取本地ARP表,但是我发现这种方法会错过没有响应ping的设备。如果有一种方法可以强制请求该设备的ARP信息,那么我也可以使用它。不过到目前为止,我还无法可靠地实现这一点。 - Ohm Unmongkolthavong
2
没有理由会错过不响应ping的设备。无论它们是否响应ping,它们都应该响应ping之前的ARP请求。 - David Schwartz
经过在我的家庭网络上进行的测试,确认了你所说的内容。我会将问题保持未解决状态,直到下周结束时我能够在工作中测试那些有问题的设备。谢谢,David! - Ohm Unmongkolthavong
2个回答

3
当我尝试ping有问题的设备时,ARP请求确实会发出。在使用Wireshark扫描器时可以看到这一点。我发现之前看到的“缺失设备”无法复现,这也是我提出最初问题的原因。
因此,回答自己的问题:当在子网上进行简单的ping扫描时,每个IP地址都会发送ARP请求。我会看到ARP请求和ping请求同时发出(使用Wireshark),如果你需要生成ARP请求,只需发送ping即可。
即使“有问题”的设备不响应ping请求,ARP表也会被通知其存在。

1

如果您想要将应用程序发布到AppStore,但您想要做的事情不在公共API中,则无法实现。

因此,为了在您自己的网络或企业分发应用程序进行测试,您可以查看私有/未记录的API。

其中一个列表维护在https://github.com/nst/iOS-Runtime-Headers,但我不能保证其准确性。

祝好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接