在为 Android 开发 Ping 应用程序以验证网络连接时,必须解决只能 Ping 本地 IP 的限制。本文将深入研究根本问题,并提供将 ping 功能扩展到外部服务器的解决方案。
原始问题中共享的代码演示了 Android 上 ping 的基本实现。但是,当尝试 ping 外部服务器时,它会出现不足。这是因为 Android 默认限制对设备本地网络外部主机的直接网络访问。
为了克服此限制,采用了涉及本机系统命令的解决方法。提供的解决方案利用 Runtime.exec() 使用所需的 IP 地址(例如,Google DNS 为 8.8.8.8)执行 /system/bin/ping 命令。
以下是包含该解决方案的更新代码:
private boolean executeCommand(){ System.out.println("executeCommand"); Runtime runtime = Runtime.getRuntime(); try { Process mIpAddrProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8"); int mExitValue = mIpAddrProcess.waitFor(); System.out.println(" mExitValue "+mExitValue); return mExitValue == 0; } catch (Exception e) { e.printStackTrace(); System.out.println(" Exception:"+e); } return false; }
通过利用这种方法,executeCommand() 方法启动本机 ping 命令,等待其完成,并返回一个布尔值表示 ping 结果。这使得外部服务器能够被 ping 通,从而在 Android 应用程序中提供更全面的网络连接评估。
以上是如何从 Android Java 应用程序 Ping 外部 IP?的详细内容。更多信息请关注PHP中文网其他相关文章!