首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从java到多平台的Ping

从java到多平台的Ping
EN

Stack Overflow用户
提问于 2011-05-30 21:57:37
回答 4查看 3.4K关注 0票数 7

我需要对某个ip/机器执行ping操作。代码可以在任何类型的平台(windows,linux,mac)上执行,我需要获得有关损失和往返时间的信息。因此,java的ping的exec不够好,因为我需要将ping响应解析为字符串,这在不同的平台和不同的操作系统语言中是不同的。那么我需要做什么呢?我知道有像JNI这样的东西,但我是java新手,所以我需要一点帮助。这仍然意味着我需要在每个平台上都有本机实现?有什么例子或建议吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-22 19:25:53

我已经使用JNI来获取ping命令。我已经使用原生(C)实现了ping,然后用JNI包装了它。降级是需要为每个平台编译C dll。

票数 0
EN

Stack Overflow用户

发布于 2011-05-30 22:38:49

由于java不是平台独立的,您可以使用System.getProperty("os.name")询问您使用的是哪种操作系统,并根据它来解析响应或定义命令。

或者,您可以在InetAddress中使用isReachable(int timeout),这似乎是最接近ICMP ECHO请求的实现,但它不会为您提供有关丢失和往返时间的信息。

另一个想法是使用tracert/tracepath而不是ping来获得往返行程?有关更多信息,请查看this thread

票数 5
EN

Stack Overflow用户

发布于 2011-05-30 22:02:16

你不能用纯Java做真正的ICMP。但是,可移植的jpcap库为本机库提供了一个很好的接口,包括ICMP (ping)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6177223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档