10

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

例如,如果用户输入 IP 地址,则173.194.36.37应用程序应显示google.com,反之亦然。

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

4

4 回答 4

19

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

InetAddress addr = InetAddress.getByName("173.194.36.37");
String host = addr.getHostName();
System.out.println(host);
于 2012-05-11T15:35:07.350 回答
2

您正在寻找的是一种叫做DNS的东西。 这个项目似乎就是你要找的。

于 2012-05-11T15:34:01.670 回答
2

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

java.net.InetAddress.getByName("example.com").getHostAddress();
于 2012-05-11T15:43:36.223 回答
0

在域名方面,没有内置实用程序,没有。您可以getCanonicalHostName()使用 on获取主机名(但不是域名)InetAddress- 这应该可以。此处的最佳答案链接到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());
}
}
于 2012-05-11T15:36:54.243 回答