用Java替换默认的DNS名称解析

时间:2011-03-12 17:14:10

标签: java jvm dns tcp

我想改变JVM在HttpURLConnections中解析域名的方式。

我没有通过默认的TCP / IP堆栈转到DNS服务器,而是想编写自己的代码来解析域名。

有没有办法替换默认的名称解析机制?

2 个答案:

答案 0 :(得分:2)

我不知道它是否可行,但有系统属性

System.setProperty(“sun.net.spi.nameservice.nameservers”,localhost); System.setProperty(“sun.net.spi.nameservice.provider.1”,“dns,sun”);

也许你的java应用程序在dns端口(53)上打开一个端口并自己处理请求。

当然,如果当前计算机上已有dns服务器,则会出现这种情况。

答案 1 :(得分: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名称。