【发布时间】:2020-04-23 13:24:31
【问题描述】:
我的 Python 脚本存在 DNS 问题,但我的 Windows 10 桌面上的网络工具或浏览器没有。
每个网络请求运行我的脚本至少需要 5-10 秒。使用带有 --idle 标志的 py-spy 进行分析,将 socket.getaddrinfo() 标识为花费最多时间的函数。我在 Python REPL 中使用以下命令进行了测试:
socket.getaddrinfo("example.org", 80, proto=socket.IPPROTO_TCP)
返回大约需要 5-10 秒。在我的活动网络接口中设置固定 DNS 服务器确实改变了任何事情。
重新启动可解决问题并将响应时间降低到第二次以下。但是在让计算机运行几天后,问题又回来了。
看起来 socket.getaddrinfo 遇到了一些超时,然后使用正确的 DNS 解析。
nslookup 工作得很好。以毫秒为单位的响应时间。在浏览器中上网也可以正常工作。
有什么我可以开始挖掘的想法吗?
【问题讨论】:
标签: python-3.x windows dns