2012-11-19 32 views
0

我剛在這裏發佈了一個問題:How to get the IP address for remote host using Java我是否需要使用Java創建套接字以獲取遠程主機IP?

下面的代碼在我測試的幾個域名中與我一起工作。

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

但我有疑問。如何在不創建套接字的情況下獲得IP?

因此,在我進入代碼的進一步階段之前,我只需要從一點確定:我是否需要創建套接字才能獲取遠程主機的IP地址?

+2

但是你已經*了IP地址爲遠程主機,並且無需打開套接字。這完全回答你的問題。 – EJP

回答

1

不需要從代碼創建套接字,getHostAddress將在後臺打開套接字並使用計算機上的DNS配置調用存根解析器來解析名稱,並且如果您綁定了通信,您會發現它去和查詢的DNS服務器的主機名

+0

這是打開插座的解析器。 Java只是把它稱爲一個函數。 – EJP

3

簡短的回答:第

較長的答案:IP公司和域名是通過DNS連接(你應該讀了)。你的代碼正在與你的操作系統進行真正的DNS解析器(DNS解析器(大多數情況下)通過UDP套接字工作,所以原則上你可以說一個套接字涉及:-)

相關問題