相关疑难解决方法(0)

强制python mechanize/urllib2只使用A请求?

这是一个相关的问题,但我无法弄清楚如何应用mechanize/urllib2的答案:如何强制python httplib库只使用A请求

基本上,给出这个简单的代码:

#!/usr/bin/python
import urllib2
print urllib2.urlopen('http://python.org/').read(100)
Run Code Online (Sandbox Code Playgroud)

这导致wireshark说以下内容:

  0.000000  10.102.0.79 -> 8.8.8.8      DNS Standard query A python.org
  0.000023  10.102.0.79 -> 8.8.8.8      DNS Standard query AAAA python.org
  0.005369      8.8.8.8 -> 10.102.0.79  DNS Standard query response A 82.94.164.162
  5.004494  10.102.0.79 -> 8.8.8.8      DNS Standard query A python.org
  5.010540      8.8.8.8 -> 10.102.0.79  DNS Standard query response A 82.94.164.162
  5.010599  10.102.0.79 -> 8.8.8.8      DNS Standard query AAAA python.org
  5.015832      8.8.8.8 -> 10.102.0.79  DNS Standard query response AAAA 2001:888:2000:d::a2
Run Code Online (Sandbox Code Playgroud)

这是一个5秒的延迟!

我的系统中没有启用IPv6(gentoo编译 …

python mechanize urllib ipv6

11
推荐指数
2
解决办法
5510
查看次数

如何刷新socket.gethostbyname响应的缓存?

任何人都遇到此事:

更新DNS记录后..我对'test.somedomain.com'进行挖掘,得到167.69.143.234,但是当我执行socket.gethostbyname('test.somedomain.com')时,我得到167.69.6.234.

我猜socket仍在使用缓存......我该如何清除它?还是冲洗它?

我的代码非常简单:

Linux Termianl

dig test.somedomain.com
Run Code Online (Sandbox Code Playgroud)

蟒蛇:

import socket
socket.gethostbyname('test.somedomain.com')
Run Code Online (Sandbox Code Playgroud)

它应该返回167.69.143.234地址,因为它是DNS中更新的地址.

python sockets dns caching gethostbyname

7
推荐指数
1
解决办法
9372
查看次数

标签 统计

python ×2

caching ×1

dns ×1

gethostbyname ×1

ipv6 ×1

mechanize ×1

sockets ×1

urllib ×1