【问题标题】:How to get URL from an IP address in Java?如何从 Java 中的 IP 地址获取 URL?
【发布时间】:2016-01-31 06:25:33
【问题描述】:

我找到了从 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) 时,它会打开 Google 网站。 所以我的问题是我如何才能从 IP 地址中获取像 http://www.google.com 这样的 URL,而不是使用 java 显示 sc-in-f94.1e100.net

【问题讨论】:

  • 你的方法是错误的。您正在使用方法获取主机名并期望获取 URL。
  • 是的,我知道,所以我需要使用 java 从 ip 地址获取 url。还有其他方法吗?
  • 无意冒犯@user2004685,但它与那个问题完全相反。
  • 我试过这个程序,它只显示IP地址@user2004685
  • 还有其他方法吗? @CoderNeji

标签: java url networking


【解决方案1】:

你不能这样做。

通常,可以通过同一个 IP 访问多个域。您可以像已经做的那样识别主机名。这是机器的名字,相当于服务于域的IP。

此外,IP 只是一台机器的地址,它也可以服务于任何域,因为它可以是网络服务器,也可以不是。

【讨论】:

    【解决方案2】:

    您实际上做的一切都是正确的。问题是今天许多主机名可以存在于同一台服务器上。这样,您可以轻松地将主机名转换为服务器的 IP 地址,但是当您尝试执行相反操作时,您只会得到服务器的名称,在这种情况下为 sc-in-f94.1e100.net

    这是hcidata的摘录:

    在互联网的早期,每个子域都有一个唯一的 IP 地址,因此主机只有一个子域名是很常见的。如今,常见的做法是拥有多个具有相同 IP 地址的子域。将域名转换为运行 www 子域的主机的 IP 地址也是很常见的。

    我希望这能为您解决问题。

    【讨论】:

      猜你喜欢
      • 2011-01-28
      • 1970-01-01
      • 2018-12-19
      • 2011-09-11
      • 2013-02-06
      • 2010-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多