私のホストファイル(C:\ WINDOWS\system32\drivers\etc\hosts)には、一連のIPアドレスからホスト名へのマッピングがあります。
# Switches
192.168.200.254 sw-con-ctrl
192.168.201.253 sw-con-ctrl-2
192.168.201.254 sw-con-ctrl-1
# 192.168.188.1 sw-con-ctrl-ylw-1
# 192.168.189.1 sw-con-ctrl-blu
192.168.190.62 access-console
# Routers
192.168.21.1 rtr1
192.168.22.1 rtr2
Java APIを使用して、プログラムでIPAddressからHostNameに変換する方法を見つけようとしています。
疑似コード:
IPAddress ip = new IPAddress("192.168.190.62");
String Host = ip.getHost();
System.out.println(Host); //prints "access-console"
here のコードを試してみましたが、うまくいきました。つまり:
InetAddress addr = InetAddress.getByName("192.168.190.62");
String Host = addr.getHostName();
System.out.println(Host);
これは、Javadocが逆ルックアップが必要ない場合にのみローカルと言うので機能します。リテラルIPアドレスが指定されている場合は、アドレス形式の有効性のみがチェックされます。
誰かがサードパーティのjarを使用せずにリモートルックアップを行う方法を知っている場合...
InetAddress
クラスにはそのためのメソッドがあります。必要に応じて、 getHostName
または getCanonicalHostName
のいずれかが必要になると思います。
import Java.net.InetAddress;
import Java.net.UnknownHostException;
public class Main02{
public static void main(String[]args) throws UnknownHostException{
InetAddress ia = InetAddress.getByName("46.228.47.114");
System.out.println(ia.getHostName());
}
}
出力:
ir2.fp.vip.ir2.yahoo.com