【发布时间】:2020-10-08 10:05:41
【问题描述】:
我想从文本文件中解析主机名的 IP 地址。以下代码适用于 ipv4 地址:
hostname1.txt:
google.com
yahoo.com
facebook.com
cnn.com
with open('hostname1.txt','r') as hostnames:
for website in hostnames:
ip = socket.gethostbyname(website.strip())
print ('{0} ip address is: {1}'.format(website,ip))
对于 ipv6,我使用了下面的代码,当文本文件中只有一个主机名时它可以正常工作。如果文本文件中有多个主机名,我会收到此错误“gaierror: [Errno 8] nodename nor servname provided, or not known”
import socket
with open('hostname1.txt') as f:
hostname = f.readlines()
for website in hostname:
ais = socket.getaddrinfo(website,0,0,0,0)
for result in ais:
ip = result[-1][0]
print ('{0} ip address is {1}'.format(website,ip))
gaierror: [Errno 8] nodename nor servname provided, or not known
【问题讨论】:
-
尝试调试您的代码,看看在第二次循环运行时会发生什么。如果它在第一次而不是第二次有效,那么肯定会出现问题。
-
请编辑标题,使其清晰