Python socket.getaddrinfo将奇怪的结果作为IPv6地址返回
在帮助某人调试一段代码时,我注意到在他们的计算机上,以下代码:Python socket.getaddrinfo将奇怪的结果作为IPv6地址返回,python,python-2.7,sockets,dns,ipv6,Python,Python 2.7,Sockets,Dns,Ipv6,在帮助某人调试一段代码时,我注意到在他们的计算机上,以下代码: python -c "import socket; print(socket.getaddrinfo('dickson.freenode.net', None))" 返回以下内容: (2,2,2,3,0,,,,,(2,3,3,0,,,,,,,(2,3,3,0,,,,,,(2,3,3,3,0,,,,,,,,,(2,3,1,1,1,1,1,1,1,1,6,,,,,,(10,1,1,1,1,1,1,1,1,1,1,6,,,,,,,,,,
python -c "import socket; print(socket.getaddrinfo('dickson.freenode.net', None))"
返回以下内容:
(2,2,2,3,0,,,,,(2,3,3,0,,,,,,,(2,3,3,0,,,,,,(2,3,3,3,0,,,,,,,,,(2,3,1,1,1,1,1,1,1,1,6,,,,,,(10,1,1,1,1,1,1,1,1,1,1,6,,,,,,,,,,,,,,,(10,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,(10,1,(10,1,1,1,1,1 00&\x00\x00\x08a\x02\x02'))]
我发现最后的结果特别奇怪:每个元组的最后一项应该是一对(ipaddress,port)
,但在这种情况下,有些是(10'\x00\x00\x00\x00\x00\x00&\x00\x00\x08a\x02\x02')
这是Python的预期行为还是bug?
在这两种情况下,这个“\x00\x00\x00\x00\x00\x00&\x00\x00\x00\x08a\x02\x02”是什么意思
在我的一台计算机上,结果如下:
[(2,1,6,,('208.80.155.68',0)),(2,2,17,,('208.80.155.68',0)),(2,3,0,,('208.80.155.68',0)),(10,1,6,,('2620:0:861:202:208:80:155',0,0,0)),(10,2,17,,('2620:861:202:80:155:68',0',0,0,,(10,3,0),('0:861:202:155,)]
这让我觉得AAAA记录处理有问题。可能是他的安装有问题。在我的笔记本电脑和服务器上都能正常工作。哪个操作系统和版本?@KlausD。操作系统是Gentoo 2.2。这可能是他的安装中的一个问题。在我的笔记本电脑和服务器上都能正常工作。哪个操作系统和版本?@KlausD。操作系统是Gentoo2.2。