通过阅读行查找网站 IP



我正在尝试完成一项任务,即脚本可以加载文件并遍历行并从每行中查找域IP。

尝试使用以下代码执行此操作:

import socket
with open('test.txt','r') as f:
for i in f.readlines():
i.strip('n')
i.strip('t')
i.strip('r')
print(socket.gethostbyname(i))
f.close()

但显示错误

回溯(最近一次调用(:文件 "ip.py",第 8 行,在 print(socket.gethostbyname(i(( socket.gaierror: [Errno -2] 名称或服务未知

任何帮助将不胜感激。

谢谢

问题是string.strip不会修改字符串,而是从文档中修改:

返回删除前导和尾随字符的字符串副本。

因此,您可以执行以下操作:

import socket
with open('test.txt','r') as f:
for i in f.readlines():
i = i.strip('n')
i = i.strip('t')
i = i.strip('r')
print(socket.gethostbyname(i))
f.close()

在如下所示的test.txt上运行它:

test.com
google.com
yahoo.com

我得到:

69.172.200.235
172.217.26.110
98.138.219.232

问题解决了。

我没有将拆分结果保存在我的 i 变量中,该变量没有删除每个域后的新行字符。 感谢每一条评论。

谢谢

你能在下面试试吗? 它奏效了。 问题就像您可能除了主机名之外还有其他字符串,这可能会引发异常。

import socket
a = ['word2','www.google.co.in','word3']
for i in a:
try:
i.strip('n')
i.strip('t')
i.strip('r')
print(socket.gethostbyname(i))
except socket.gaierror:
print("Unable to get Hostname and IP")

输出:

Unable to get Hostname and IP
172.217.195.94
Unable to get Hostname and IP

最新更新