IP到主机名

时间:2014-06-03 14:51:15

标签: java ip

我正在尝试编写代码,如果我给它一个IP地址,它将返回一个域名。这是我到目前为止所做的事情;

String destination = "173.194.24.144";
InetAddress address = InetAddress.getByName(destination);
String resolvedHost = address.getHostName();
System.out.println("Translated " + destination + " to host name " + resolvedHost);

我得到的是Translated 173.194.24.144 to host name 173.194.24.144

我知道173.194.24.144是Google的IP地址。但是刚刚得到这个,我尝试了一些小实验并对情况进行了一些逆向工程。我试过了;

InetAddress addr = InetAddress.getByName("www.google.com");
System.out.println("Host Name " + addr.getHostName());
System.out.println("Host Address " + addr.getHostAddress());

System.out.println("--------------------------------------------");

byte [] add = new byte[]{74, 125, 24, (byte) 105};
InetAddress ip = InetAddress.getByAddress(add);
System.out.println("Host Name " + ip.getHostName());
System.out.println("Host Address " + ip.getHostAddress());

我在响应中得到的IP用在字节数组中,但我得到的完整结果是;

Host Name www.google.com
Host Address 74.125.24.105
--------------------------------------------
Host Name de-in-f103.1e100.net
Host Address 74.125.24.105

但这让我更加困惑,因为我有de-in-f103.1e100.net而不是www.google.com

任何人都可以为我解释这个问题吗?

2 个答案:

答案 0 :(得分:1)

de-in-f103.1e100.net重定向到Google。

我猜测74.125.24.105实际导致de-in-f103.1e100.net,然后重定向到Google。在第一个中,您使用相同的ip创建了InetAddress指向google.com。您可以通过跟踪重定向(在Windows命令行上tracert)来访问Google。

答案 1 :(得分:0)

在阅读并做更多调查后,我终于能够回答这个问题了。如果我将IP地址和域名添加到/etc/hosts文件并再次运行该类,它将生成我插入/etc/hosts文件的域名,而不是原始响应。