- 背景:我要与根名称服务器建立TCP连接,以便发送DNS查询并检查响应 *
我尝试使用python中的socket
模块与根名称服务器建立TCP连接,特别是与a.root-servers.net
我在Windows 11的交互式python shell中编写了下面的代码。
我扑过去:
import socket
a = socket.socket()
a.connect(("a.root-servers.net", 53))
但我得到的错误:TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
为什么会这样呢?
1条答案
按热度按时间rt4zxlrg1#
我从下面的代码中获得了良好的虚拟电路(TCP)结果:
从您的客户端到根服务器的端到端路径与我的不同,它有一个或多个过滤路由器(防火墙),丢弃端口53的TCP数据包。
这样做违反6.1.3.2了rfc 1123 host requirements的www.example.com部分。允许TCP域请求通过是非常重要的,因为某些DNS应答不适合有限大小的UDP数据报。
建议您要求您的本地防火墙管理员修复其配置,或寻求替代的互联网连接解决方案。