web-dev-qa-db-ja.com

JavaのIPアドレスからホスト名へ?

私のホストファイル(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"
23
mainstringargs

here のコードを試してみましたが、うまくいきました。つまり:

  InetAddress addr = InetAddress.getByName("192.168.190.62");
  String Host = addr.getHostName();
  System.out.println(Host);
50
user85509

これは、Javadocが逆ルックアップが必要ない場合にのみローカルと言うので機能します。リテラルIPアドレスが指定されている場合は、アドレス形式の有効性のみがチェックされます。

誰かがサードパーティのjarを使用せずにリモートルックアップを行う方法を知っている場合...

2
RudeUrm

InetAddress クラスにはそのためのメソッドがあります。必要に応じて、 getHostName または getCanonicalHostName のいずれかが必要になると思います。

2
Bill the Lizard
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