2011-03-12 74 views
3

我想改變JVM在HttpURLConnections中解析域名的方式。替換Java中的默認DNS名稱解析

而不是通過默認的TCP/IP堆棧去DNS服務器我想寫我自己的代碼來解析域名。

有沒有辦法替代默認的名稱解析機制?

+0

DNS使用IP地址替換主機名,最簡單的做法是自己用IP地址替換主機名。 – 2011-03-12 17:19:37

回答

2

我不知道它是否會工作,但也有系統屬性

System.setProperty( 「sun.net.spi.nameservice.nameservers」 爲localhost); System.setProperty(「sun.net.spi.nameservice.provider.1」,「dns,sun」);

也許如果你有你的Java應用程序在dns端口(53)上打開一個端口並自己處理請求。

當然,如果當前機器上已經存在dns服務器,則會下降。

1

構建用數字IP地址替換主機名的URL,然後手動將Host標題添加到HttpUrlConnection

http://www.myserver.com/foo.html 

是相當於

http://192.168.1.100/foo.html 
Host: www.myserver.com 

dnsjava給您解決在標準Java API DNS名稱的更多的控制。