gpt4 book ai didi

python - 如何强制 python httplib 库仅使用 A 请求

转载 作者:行者123 更新时间:2023-11-28 21:30:45 26 4
gpt4 key购买 nike

问题是 urllib 使用 httplib 正在查询 AAAA 记录。

我想避免这种情况。有什么好的方法可以做到这一点吗?

>>> import socket
>>> socket.gethostbyname('www.python.org')
'82.94.164.162'


21:52:37.302028 IP 192.168.0.9.44992 > 192.168.0.1.53: 27463+ A? www.python.org. (32)
21:52:37.312031 IP 192.168.0.1.53 > 192.168.0.9.44992: 27463 1/0/0 A 82.94.164.162 (48)


python /usr/lib/python2.6/urllib.py -t http://www.python.org >/dev/null 2>&1

21:53:44.118314 IP 192.168.0.9.40669 > 192.168.0.1.53: 32354+ A? www.python.org. (32)
21:53:44.118647 IP 192.168.0.9.40669 > 192.168.0.1.53: 50414+ AAAA? www.python.org. (32)
21:53:44.122547 IP 192.168.0.1.53 > 192.168.0.9.40669: 32354 1/0/0 A 82.94.164.162 (48)
21:53:44.135215 IP 192.168.0.1.53 > 192.168.0.9.40669: 50414 1/0/0 AAAA[|domain]

最佳答案

正确答案是:

http://docs.python.org/library/socket.html

Python 套接字库正在使用以下内容:

socket.socket([家族[, 类型[, 原型(prototype)]]])使用给定的地址族、套接字类型和协议(protocol)号创建一个新套接字。地址族应为 AF_INET(默认)、AF_INET6 或 AF_UNIX。套接字类型应该是 SOCK_STREAM(默认)、SOCK_DGRAM 或其他 SOCK_ 常量之一。协议(protocol)号通常为零,在这种情况下可以省略。

/* Supported address families. */
#define AF_UNSPEC 0
#define AF_INET 2 /* Internet IP Protocol */
#define AF_INET6 10 /* IP version 6 */

默认情况下它使用 0,如果您使用 2 调用它,它将仅查询 A 记录。

请记住,在应用程序中缓存解析结果是一个非常糟糕的主意。永远不要这样做!

关于python - 如何强制 python httplib 库仅使用 A 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1540749/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com