在Windows和Linux平台上使用Java获取网络信息

时间:2011-11-15 21:44:53

标签: java windows linux network-programming

我的应用程序中需要的网络配置信息比java.net.NetworkInterfacejava.net.InetAddress提供的信息要多。我想包括诸如子网,网关和DNS服务器之类的信息,但代码需要可移植到Windows和Linux平台。

我已经考虑过为Windows执行Runtime.getRuntime().exec("ipconfig")和Linux执行Runtime.getRuntime().exec("ifconfig")并解析结果。也许有更好的方法来做这个或我可以使用的开源项目。

提前感谢任何可以引导我朝着正确方向前进的想法

2 个答案:

答案 0 :(得分:1)

如果您正在考虑更好,更强大的解决方案,您可能会使用SNMP(简单网络管理协议)的想法。有几个API可供使用,SNMP4J是最着名和开源的。因为SNMP是支持多个操作系统甚至交换机和路由器,在深度网络级统计中使用它可能是个好主意。但是如果你想要一个更简单的解决方案,那么使用Sigar API,它支持许多操作系统,包括windows和Linux. Sigar的一个问题是,它是根据GPL许可的,禁止您将其部署在商业项目中。

答案 1 :(得分:0)

您可以使用本机代码,并使用JNI。 然后运送一个.dll用于windows,一个.so(或源代码)用于linux, 虽然这可能不比'exec'解决方案好很多。