SewiGの日記
2005-12-14 [水] [長年日記]
■ [Java][Programming] Default GatewayやDNS Server
java.netを使えば、例えば以下のようにIPアドレスが取得できます。
String address = (java.net.InetAddress.getLocalHost()).getHostAddress();
Default GatewayやDNS Serverは取得する方法がなさそうだったので、Windowsの場合は以下のようにして、外部コマンドの出力を使います。UNIXだったらifconfigを使えばいい。余計な文字はsubstringなんかで適宜消す、と。このままだと、環境依存で気持ち悪いので、Abstract Factoryなどで抽象化して利用できるようにするとなお良し。
Process p = new ProcessBuilder("ipconfig", "/all").start(); java.io.BufferedReader br = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream())); String address; while ((address = br.readLine()) != null) { if (address.indexOf("DNS Servers") != -1) { System.out.println(address); } }