Navy1228 2023-07-30 21:46 采纳率: 43.3%
浏览 12
已结题

为何用Runtime.getRuntime().exec ping ip,无论什么情况都返回 true

请教一下,为什么使用 Runtime.getRuntime().exec("ping -c 1 "+ ipAddress).waitFor() 时,哪怕是输入无存在的域名,他总是返回 true

img

而我又输入内网 ip,它却返回 false【我已经连接了内网,不是直接返回 false,而是超时 5 秒后还未连通导致的】

我一开始用的【InetAddress.getByName(ipAddress).isReachable(1500)】这个方法,但是一直是 false,查了下是授权问题,我搞不来,就改用的 Runtime 这种方式。

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-07-30 21:48
    关注

    因为你的代码返回的结果是ping命令是否正确运行,而不是ping命令是否返回是否接收到对方返回,所以总是true

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月2日
  • 修改了问题 7月30日
  • 创建了问题 7月30日