首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python socket.getaddrinfo()的Windows DNS问题

Python socket.getaddrinfo()的Windows DNS问题
EN

Stack Overflow用户
提问于 2020-04-23 21:24:31
回答 1查看 189关注 0票数 1

我的Python脚本有DNS问题,但网络工具或Windows10桌面上的浏览器没有问题。

运行我的脚本,每个网络请求至少需要5-10秒。使用带有--idle标志的py-spy进行分析时,将socket.getaddrinfo()标识为花费了大部分时间的函数。我使用以下命令在Python REPL中进行了测试:

代码语言:javascript
运行
复制
socket.getaddrinfo("example.org", 80, proto=socket.IPPROTO_TCP)

它花了大约5-10秒的时间才回来。在我的活动网络接口中设置固定的DNS服务器并没有改变任何事情。

重新启动解决了这个问题,并将响应时间降低到秒以下。但是在保持计算机正常工作了几天之后,问题又出现了。

看起来socket.getaddrinfo遇到了一些超时,然后用正确的域名解析。

nslookup运行得很好。响应时间(毫秒)。同样,在浏览器中上网也很好用。

有什么想法可以让我开始挖掘吗?

EN

回答 1

Stack Overflow用户

发布于 2020-04-30 00:28:31

你想要达到什么目的?将域名解析为IP地址?

  1. 只需尝试: socket.gethostbyname("example.com")
  2. check配置了哪些dns服务器(在cmd- ipconfig /all中,DNS服务器类别)。
  3. 尝试使用适当的python DNS客户端,看看问题是否仍然存在。例如dnspython

(请参阅此答案- Socket resolve DNS with specific DNS server)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61388353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档