iPhone上的ARP请求

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

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

有很多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扫描。 我没有看到任何ICMP数据包与“ARP”同时发出。 这让我相信在iOS上确实可以发送和接收ARP数据包。

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

问题 :在逻辑层发送/接收数据包的可用内容是什么? 特别是发送接收ARP报文? 我错过了什么根本的东西?

提前致谢!

当我尝试ping有问题的设备时,ARP请求会消失。 这是在与ping扫描器一起运行的Wireshark会话中看到的。 我发现我无法重现我之前看到的“缺失的设备”,这让我想问我原来的问题。

因此,回答我自己的问题:在我的子网上进行简单的ping扫描时,每个IP地址都会发送ARP请求。 我会看到ARP请求(使用Wireshark)以及ping请求。 如果您需要生成ARP请求,只需发送ping即可。

即使“有问题”的设备不响应​​ping请求,也会通知ARP表它是否存在。