3

我想以编程方式让我的设备在连接到 wifi 网络时响应广播 ping(即 ping 192.178.1.255)。

有没有办法我可以做到这一点?也许是一个会回复的侦听器,或者是在某处设置的标志?

谢谢。

4

3 回答 3

4

有没有办法我可以做到这一点?

简而言之:是的。但是集成必要的组件需要付出很大的努力。

关键问题是您需要侦听 ICMP 网络数据包。此类功能无法从 Java 访问,并且需要 JNI 代码或外部程序。(据我所知,它还需要有根设备。)

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

于 2012-11-04T15:23:40.473 回答
1

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

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

于 2012-11-04T16:06:38.650 回答
0

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

我所做的是下载一个根文件资源管理器(我使用 JRummy Apps 的根浏览器)并导航到/proc/sys/net/ipv4编辑icmp_echo_ignore_all以便它是一个 1 行 1 个字符的文件,简单地说0(当我打开文件,它设置为1)

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

于 2020-09-20T15:00:05.603 回答