将超时传递给socket.getaddrinfo

时间:2014-11-11 05:09:17

标签: python dns timeout

我们说我在Python中编写HTTP请求而我的DNS服务器出现故障。

如果我尝试:

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

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

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

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

1 个答案:

答案 0 :(得分:3)

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

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