【问题标题】:Replace default DNS name resolution in Java替换 Java 中的默认 DNS 名称解析
【发布时间】:2011-07-14 03:12:09
【问题描述】:

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

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

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

【问题讨论】:

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

标签: java jvm dns tcp


【解决方案1】:

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

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

相当于

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

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

【讨论】:

    【解决方案2】:

    我不知道它是否会起作用,但有系统属性

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

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

    当然,如果当前机器上已经有 dns 服务器,这会失败。

    【讨论】:

      猜你喜欢
      • 2019-02-06
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-06
      • 1970-01-01
      • 2022-01-21
      相关资源
      最近更新 更多