Joe*_*oel 2 domain-name-system http
我正在尝试以编程方式获取页面,每次解析主机都需要 10 秒的时间。在另一台机器上,它正好需要 30 秒。两个Linux。
我的代码是用 Java 编写的,但是使用 wget 可以重现该问题:
time wget -d --header "User-Agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Ubuntu/10.10 Chromium/11.0.696.65 Chrome/11.0.696.65 Safari/534.24" http://www.sportsdirect.com
Run Code Online (Sandbox Code Playgroud)
这会在以下情况下挂起 10 秒:
Resolving www.sportsdirect.com... 86.17.5.250
我们在 Linux 上运行。
为了混淆事物,同一台机器上的其他浏览器会立即获取相同的页面。
有什么线索吗?
这是因为 wget 和 lynx 没有缓存 DNS 结果,您的浏览器甚至可能禁用了 IPv6。
DNS forwww.sportsdirect.com已损坏,并在 AAAA 记录上超时。
您可以使用wget的-4或--inet4-only选项来强制仅使用IPv4。
$ time host -t A www.sportsdirect.com
www.sportsdirect.com is an alias for sd.gwcorp.sports-world.com.
sd.gwcorp.sports-world.com has address 86.17.5.250
real 0m0.009s
user 0m0.000s
sys 0m0.000s
$ time host -t AAAA www.sportsdirect.com
;; connection timed out; no servers could be reached
real 0m14.008s
user 0m0.000s
sys 0m0.000s
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3217 次 |
| 最近记录: |