这可能是由于Python的socket模块默认使用IPv4地址解析器,而您的主机有一个IPv4地址和一个IPv6地址。您可以尝试使用socket.getaddrinfo()函数,该函数可以返回多个地址,包括IPv6地址。

例如:

import socket

hostname = 'example.com'
addrinfo = socket.getaddrinfo(hostname, None)

for result in addrinfo:
    print(result[4][0])

这将打印出所有的IP地址。如果您只想获取IPv4地址,可以添加一个筛选器:

import socket

hostname = 'example.com'
addrinfo = socket.getaddrinfo(hostname, None, socket.AF_INET)

for result in addrinfo:
    print(result[4][0])
双网卡主机python socketgethostbyname只返回一个地址

原文地址: https://www.cveoy.top/t/topic/crbc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录