我找到了从IP地址获取主机名的代码。代码如下所示:
import java.net.InetAddress;
import java.net.UnknownHostException;
public class GetHostName{
public static void main(String a[]){
try{
InetAddress host = InetAddress.getByName("74.125.68.94");
System.out.println(host.getHostName());
}
catch(UnknownHostException ex){
ex.printStackTrace();
}
}
}
显示输出如:
sc-in-f94.1e100.net
但是当我通过浏览器解雇这个IP地址(74.125.68.94)时,它打开了谷歌网站。 所以我的问题是如何从IP地址中获取http://www.google.com之类的URL,而不是使用java显示 sc-in-f94.1e100.net ?
答案 0 :(得分:4)
你不能这样做。
通常,可以在同一IP上访问多个域。你可以像你已经做的那样识别主机名。这是机器的名称,相当于为域提供服务的IP。
此外,IP只是一台机器的地址,它也可以服务于任何域名,因为它可以是网络服务器。
答案 1 :(得分:1)
你实际上做的一切都是正确的。问题是,今天许多主机名可以存在于同一台服务器上。这样,您可以轻松地将主机名转换为服务器的IP地址,但是当您尝试执行相反操作时,您只能获得服务器的名称,在这种情况下sc-in-f94.1e100.net
。
以下摘自hcidata:
在互联网的早期,每个子域都有一个唯一的IP地址,因此主机通常只有一个子域名。如今,通常的做法是使许多子域具有相同的IP地址。将域名转换为运行www子域的主机的IP地址也很常见。
我希望这能为你解决问题。