是否有一种方法可以使Android设备回答有关广播地址的ICMP ping的答案



我想在连接到WiFi网络时,将我的设备编程为广播ping(即192.178.1.255)。

有什么方法可以做到吗?也许是一个会向后ping的听众,或者是在某个地方设置的标志?

谢谢。

有办法我可以做到吗?

简而言之:是的。但是要整合必要的组件将需要一些良好的努力。

关键问题是您需要收听ICMP网络数据包。这种功能无法从Java访问,因此需要JNI代码或外部程序。(据我所知,它也需要一个扎根的设备。)

您将需要一个可以处理网络流量的库或程序,例如JPCAP(这需要进行一些修改才能在Android上使用)。您也可以在后台安装并运行tcpdump的实例并解析其输出。

应用程序不可能在Android上发送/接收ICMP回声请求。(也许有根源的设备有一种方法)

但是,如果您的基本目标是实现某种本地设备发现功能(并且您的代码在所有设备上运行),则可以使用UDP宽/多播消息。

我知道这个问题现在已经很老了,但是我遇到了这个寻求答案并设法自己解决的问题。

我所做的是下载一个root File Explorer(我使用Jrummy应用程序中的根浏览器)并导航至/proc/proc/sys/net/net/ipv4 edit icmp_echo_ignore_ignore_ignore_all_all 是一个1行1个字符的文件,简单地说 0 (当我打开文件时,将其设置为1)

没有重新启动,ICMP请求开始保存时开始工作。

最新更新