【问题标题】:Is there a way to make an android device answer to icmp pings addressed to the broadcast address?有没有办法让 android 设备回答寻址到广播地址的 icmp ping?
【发布时间】:2012-11-04 14:45:26
【问题描述】:

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

有什么办法可以做到吗?也许是一个会 ping 回来的侦听器,或者是在某处设置的标志?

谢谢。

【问题讨论】:

  • 请详细说明,什么样的广播?
  • 发送到子网广播地址的 ping,例如 192.168.1.0 网络上的 192.168.1.255。
  • 我认为值得注意的是,如果攻击者是暴力破解设备,响应 ping 可以让他们知道您的存在。

标签: android ping broadcast android-networking icmp


【解决方案1】:

有什么办法可以做到吗?

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

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

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

【讨论】:

  • 最佳答案,谢谢。正如@forgemo 指出的那样,我可能会使用多播。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-06-18
      • 2012-01-01
      • 1970-01-01
      • 2011-02-28
      • 1970-01-01
      • 2010-12-29
      • 2011-08-02
      • 2022-01-18
      • 1970-01-01
      相关资源
      最近更新 更多