python - 将超时传递给 socket.getaddrinfo

标签 python dns timeout

假设我正在用 Python 编写 HTTP 请求,但我的 DNS 服务器出现故障。

如果我尝试:

import requests
requests.get('https://api.twilio.com', timeout=3)

并且 DNS 服务器已关闭,这可能需要 90 秒以上,尽管指定了超时值。

此外,阻塞调用是 socket.getaddrinfo,而且它看起来不像需要超时参数。

有没有办法在 DNS 查找上设置超时?

最佳答案

没有办法将超时传递给 getaddrinfo 系统调用,因为它不接受超时参数。您可以在一个线程中运行查找,然后在它过期时将其取消。

在 Unix 机器上,您可以将 /etc/resolv.conf 修改为 set a timeout for addrinfo lookups .

关于python - 将超时传递给 socket.getaddrinfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26857922/

相关文章:

python - 转发发送到域的所有邮件 (Google App Engine)

c++ - 超时后如何终止函数调用?

python - 如何将字节数组的内容复制到列表 (Python)?

python - 在字典数组中查找最小值

Python-从多个文件中读取

dnsmasq,根据使用的接口(interface)提供不同的 IP 地址

powershell:如何以dns格式检索计算机名称

python - 查询以选择帖子和所有附件

c - 在后台运行超时函数

iOS/swift : Set timeout for opening Streams