iPhone上的ARP请求

时间:2013-01-22 20:06:13

标签: iphone ios arp

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

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

有很多可以执行此操作的c代码,但由于权限的原因,我找不到任何可以转换为iOS的代码。

当我决定使用Wireshark一些网络发现应用时,我已经准备好了。即“Fing”和“Pinggy”(帽子给Fing和Pinggy btw ...真棒应用程序!)

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报文?我错过了什么基本的东西吗?

提前致谢!

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

你无法做你想做的事,并在AppStore中获取应用程序, 因为你要做的不是公共API。

因此,您可以做的一件事是,在您自己的网络上进行测试,或者企业分布式应用程序正在寻找私有/未记录的API。

其中一个列表保留在https://github.com/nst/iOS-Runtime-Headers,但我无法保证其准确性。

祝你好运!