0

我刚刚在这里发布了一个问题:How to get the IP address for remote host using Java

以下代码在我测试的几个域名中与我一起使用。

   InetAddress inetAddress = InetAddress.getByName("http://www.google.com");
    String ipAddress = inetAddress.getHostAddress().toString()'
    System.out.println(ipAddress );//prints 66.152.109.61

但我很怀疑。如何在不创建套接字的情况下获取 IP?

所以,在我进入代码的进一步阶段之前,我只需要从一点确定:我是否需要创建套接字才能获取远程主机的 IP 地址?

4

2 回答 2

3

简短的回答:没有。

更长的答案:IP 和域名通过DNS连接(您应该阅读)。您的代码实际上是在与您的操作系统 DNS 解析器对话(DNS(主要)通过 UDP 套接字工作,因此原则上您可以说涉及到一个套接字 :-)

于 2012-11-19T13:35:20.963 回答
1

不需要从您的代码中创建套接字,getHostAddress 将在后台打开一个套接字并使用您机器上的 DNS 配置调用存根解析器来解析名称,如果您对流量进行wireshark,您会发现它已经过去并查询您的主机名的 dns 服务器

于 2012-11-19T13:34:48.653 回答