双网卡主机python socketgethostbyname只返回一个地址
这可能是由于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])
原文地址: https://www.cveoy.top/t/topic/crbc 著作权归作者所有。请勿转载和采集!