将IP地址转换为主机名

在我的java应用程序中,如果用户输入IP,我们需要显示主机名,如果给出主机名,那么我们需要显示主机的IP。

例如,如果用户输入的IP地址如173.194.36.37应用程序应显示google.com173.194.36.37

是否有可用于执行此操作的实用程序?

如果您使用Java编码,请尝试使用InetAddress

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

您正在寻找的是称为DNS的东西。 这个项目似乎是你正在寻找的。

SomeKittens项目提到你看起来像一个用Java编写的完整DNS服务器,可能比你需要的更多。 看看java.net.InetAddress

 java.net.InetAddress.getByName("example.com").getHostAddress(); 

在域名方面,没有内置的实用程序,没有。 您可以通过在InetAddress上使用getCanonicalHostName() 获取主机的名称(但不是域名) – 这应该可行。 这里的最佳答案链接到DNS Java项目,它将为您提供域名。

下面给出了连接到Google服务器之一并从中获取主机名的示例代码:

 public class GetHostName { public static void main(String[] args) throws Exception { InetAddress address = InetAddress.getByAddress(new byte[]{74, 125,(byte) 227, 7}); System.out.println(address.getCanonicalHostName()); } }