我想改变JVM在HttpURLConnections中解析域名的方式。
我没有通过默认的TCP / IP堆栈转到DNS服务器,而是想编写自己的代码来解析域名。
有没有办法替换默认的名称解析机制?
答案 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名称。