有没有一种方法使安卓设备响应发送到广播地址的icmp ping请求?

4
我希望通过编程让我的设备响应广播ping(即ping 192.178.1.255),同时连接到wifi网络。
有没有办法做到这一点?也许可以使用一个侦听器来返回ping,或者在某个地方设置标志?
谢谢。

请详细说明,是哪种广播? - Frank
2
针对子网广播地址的ping,例如在192.168.1.0网络上的192.168.1.255。 - Intrepidd
我认为值得注意的是,如果攻击者正在对设备进行暴力攻击,回应ping会让他们知道你的存在。 - samdoj
3个回答

5
简而言之:是的。但需要付出一些努力来集成必要的组件。
关键问题是需要监听 ICMP 网络数据包。这种功能在 Java 中不可访问,需要 JNI 代码或外部程序。(据我所知,还需要 root 设备。)
您需要一个可以处理网络流量的库或程序,例如 Jpcap(需要 一些修改 才能在 Android 上工作)。您还可以安装并运行 tcpdump 的实例,并解析其输出。

最好的答案,谢谢。我可能会像@forgemo指出的那样使用组播。 - Intrepidd

1

在Android上,应用程序无法发送/接收ICMP Echo请求(也许在已root的设备上有方法)。

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


0

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

我所做的是下载一个根文件浏览器(我使用JRummy Apps的Root Browser),并导航到/proc/sys/net/ipv4编辑icmp_echo_ignore_all,使其成为一个1行、1字符的文件,只需简单地写上0(当我打开文件时,它被设置为1)

无需重新启动,保存后ICMP请求开始工作。


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