IP Address to Hostname in Java?

我只是一个虾纸丫 提交于 2019-11-26 16:27:21

问题


My hosts file (C:\WINDOWS\system32\drivers\etc\hosts) has a bunch of IP Address to host name mappings:

# 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-blk-1
# 192.168.189.1       sw-con-ctrl-red
192.168.190.62        access-console

# Routers
192.168.21.1          rtr1
192.168.22.1          rtr2

I am trying to find a way to convert from an IPAddress to the HostName programmatically through Java APIs.

Pseudocode:

IPAddress ip = new IPAddress("192.168.190.62");
String host = ip.getHost();
System.out.println(host);  //prints "access-console"

回答1:


I tried the code from here and it works. Namely:

  InetAddress addr = InetAddress.getByName("192.168.190.62");
  String host = addr.getHostName();
  System.out.println(host);



回答2:


This works as the javadocs say only local when no reverse lookup is needed: If a literal IP address is supplied, only the validity of the address format is checked.

If someone know a way without using third party jars to do the remote lookup...




回答3:


There are methods in the InetAddress class for that. I think you'll want either getHostName or getCanonicalHostName, depending on your need.



来源:https://stackoverflow.com/questions/3371879/ip-address-to-hostname-in-java

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!