【问题标题】:DNS pre-resolve at server服务器上的 DNS 预解析
【发布时间】:2015-02-09 20:27:30
【问题描述】:

有没有办法在服务器上解析DNS(使用PHP),然后在html 中包含带有域名的预解析IP 地址?所以客户端的浏览器直接从该 IP 获取,而不需要先解析DNS

这里有更多的说明。我的PHP 生成的页面有许多指向jscss 的外部链接以及来自不同域的图像文件。在客户端的浏览器上解析DNS 需要很长时间。它可以在服务器上非常快地完成,但我不想直接从 IP 地址链接这些资源。相反,我想要告诉浏览器域 example.com 托管在 1.1.1.1 的东西,例如,不需要执行 DNS lookup

有可能吗?或者有什么解决方法吗?

dns-prefetch 这样的东西有一个值或属性吗?

<link rel="dns-prefetch" href="http://example.com" value="1.1.1.1" />

提前致谢。

【问题讨论】:

  • 对了,直接从IP地址链接资源可以吗?像这样

标签: php dns ip prefetch


【解决方案1】:

嗯,你可以将 dns-name 解析为 IP。

  1. 虽然 PHP 无法做到这一点,但您可以在服务器上创建一个测试文件。之后,您获取他的文件的请求。根据 OSI 模型,DNS 客户端将解析 DNS 名称->IP,然后您的 HTTP 标头中将包含 IP,因为您的实际查询取决于服务器的 IP。
  2. 低级别。 Windows 和 Linux 都有一个用于解析 DNS 名称 -> IP 的 API。因此,您可以在 C++ 中使用它们的功能来获取 IP,而无需测试文件。
  3. 或者你可以构造DNS消息:DNS-message => UDP-datagram => IP-package。将其发送到 DNS 服务器并等待答复后。

您可以在配置中找到您的 DNS 服务器 IP。

【讨论】:

  • 对不起,我不明白你的回答。我不需要或访问 C++,现在 windows 或 DNS 服务器是这里的一个问题。我知道域名,它是 php 中服务器的 IP。发送 HTML 时,我的资源是从域名链接的。通常客户端的浏览器或操作系统会解析该域名。我想避免这一步。相反,我希望客户端浏览器使用我想在 html 中发送的预解析 IP。有可能吗?
  • 好吧,我以为你需要获取服务器的 IP 地址。
  • @IAdam 如果你有,那么你可以在 url 中使用它而不是 dns-name。例如:1.1.1.1/images/1.jpg" />。这是有效的,因为所有请求的地址中都有 IP,而不是 dns-name。
  • @IAdam。信息。浏览器或操作系统无法解决任何问题。 DNS->IP 解析发生在 dns-client 和 dns-server 之间的会话期间,主要在 dns-server 端。它是网络架构的基础。浏览器和操作系统只缓存 DNS->IP 映射。
  • 感谢您的评论。实际上,一些恶意软件检查程序将链接到 IP 地址的资源视为恶意软件。另外,这也是 SEO 的一个缺点。
猜你喜欢
  • 1970-01-01
  • 2016-04-08
  • 2023-03-06
  • 2016-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多