私のアプリケーションで、java.net.NetworkInterface
とjava.net.InetAddress
以上のネットワーク構成情報が必要です。私は、サブネット、ゲートウェイ、DNSサーバーなどの情報を含めたいと思いますが、WindowsとLinuxの両方のプラットフォームにコードを移植する必要があります。WindowsおよびLinuxプラットフォームでJavaのネットワーク情報を取得する
Windowsの場合はRuntime.getRuntime().exec("ipconfig")
、Linuxの場合はRuntime.getRuntime().exec("ifconfig")
として解析しました。おそらく、これを行うためのより良い方法や、私が使うことができるオープンソースプロジェクトがあります。右方向
ifconfigとipconfigを呼び出すと、移植性が損なわれます。現在持っているコードを投稿できますか? – Woot4Moo
私は、各OSの個別の実装を呼び出すためのファクトリメソッドを作成しました。ウィンドウの場合、私は 'ipconfig/all'を呼び出して結果を解析しています。 Linuxの場合、私は 'ifconfig'、 'route -n'、 'cat /etc/resolv.conf'を呼び出しています。 –
また、一部のLinuxディストリビューションのデフォルトインストールでは、パスに/ sbinが含まれていないため、ユーザに応じて呼び出しが失敗する可能性があります。 –