socket.getaddrinfo返回奇怪的结果作为IPv6地址

时间:2016-06-14 15:23:20

标签: python python-2.7 sockets dns ipv6

在帮助某人调试一段代码时,我注意到在他们的计算机上,这段代码:

python -c "import socket; print(socket.getaddrinfo('dickson.freenode.net', None))"

返回:

  

[(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,'',(10,'\ x00 \ x00 \ x00 \ x00 \ x00 \ x00& \ x00 \ x00 \ x08a \ x02 \ x02')),(10,2,17,'',(10,'\ x00 \ x00 \ x00 \ x00 \ x00 \ x00& \ x00 \ x00 \ x08a \ x02 \ x02')),( 10,3,0,'',(10,'\ x00 \ x00 \ x00 \ x00 \ x00 \ x00& \ x00 \ x00 \ x08a \ x02 \ x02'))]

我发现最后的结果特别奇怪:每个元组的最后一项应该是一对(ipaddress, port),但在这种情况下,有些是(10, '\x00\x00\x00\x00\x00\x00& \x00\x00\x08a\x02\x02')

这是Python的预期行为还是错误? 在这两种情况下,这个'\ 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:68',0,0, 0)),(10,2,17,'',(''2620:0:861:202:208:80:155:68',0,0,0)),(10,3,0,'' ,('2620:0:861:202:208:80:155:68',0,0,0))]

这让我觉得AAAA记录处理存在问题。

0 个答案:

没有答案