2011-03-12 76 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名称的更多的控制。