我想在连接到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请求开始保存时开始工作。