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

替换Java中的默认DNS名称解析,java,jvm,dns,tcp,Java,Jvm,Dns,Tcp,我想改变JVM解析HttpURLConnections中域名的方式 我不想通过默认的TCP/IP协议栈进入DNS服务器,而是想编写自己的代码来解析域名 有没有办法替换默认的名称解析机制?我不知道它是否有效,但有一些系统属性 setProperty(“sun.net.spi.nameservice.nameservers”,localhost); System.setProperty(“sun.net.spi.nameservice.provider.1”,“dns,sun”) 如果您让java应

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

我不想通过默认的TCP/IP协议栈进入DNS服务器,而是想编写自己的代码来解析域名


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

我不知道它是否有效,但有一些系统属性

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

如果您让java应用程序在dns端口(53)上打开一个端口,并自己处理请求,则可能会发生这种情况


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

构造URL,将主机名替换为数字IP地址,然后手动将
主机
头添加到
HttpUrlConnection

http://www.myserver.com/foo.html
相当于

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

通过标准Java API,您可以更好地控制解析DNS名称。

DNS将主机名替换为IP地址,最简单的方法是自己将主机名替换为IP地址。