套接字.getaddrinfo作为IPv6地址返回结果

2024-03-29 01:40:19 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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的预期行为,还是bug? 在这两种情况下,'\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的记录处理有问题。你知道吗


Tags: 代码importnonenet计算机情况socketfreenode