ローカルのホスト名とIPアドレスの取得方法です。
InetAddress.getLocalHost()メソッドでInetAddressクラスの唯一のインスタンスを取得し、getHostName()でホスト名を、getHostAddress()メソッドでIPアドレスをそれぞれ取得します。
これらの情報はコンピュータ一台に対して通常一つしかないので(LANカードが二枚以上さされている場合を除いて)InetAddressクラスはSingletonパターンを採っているようです。あー、アドレスを二つ以上持っている場合の手順忘れてしまいました。後でさらっておこう。
ソースコード
import java.net.InetAddress;
import java.net.UnknownHostException;
public class ShowInetAddress {
public static void main(String[] args) {
// ローカルホスト名とIPアドレスを取得
try {
InetAddress addr = InetAddress.getLocalHost();
InetAddress addr2 = InetAddress.getLocalHost();
if (addr.equals(addr2)) System.out.println("addrとaddr2は同じインスタンス");
System.out.println("Local Host Name: " + addr.getHostName());
System.out.println("IP Address : " + addr.getHostAddress());
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
実行結果の一例
addrとaddr2は同じインスタンス Local Host Name: Yukun-PC IP Address : 192.168.1.10