通过阅读线查找网站IP

时间:2018-08-12 05:21:58

标签: python python-3.x

我正在尝试实现一个任务,脚本可以加载文件并遍历行并从每行中查找域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]名称或服务未知

任何帮助将不胜感激。

谢谢

3 个答案:

答案 0 :(得分:3)

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

  

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

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

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

答案 1 :(得分:0)

您可以尝试以下吗?有效。 问题是,您可能会在主机名之外加上其他字符串,这可能引发异常。

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

答案 2 :(得分:0)

问题解决了。

我没有将分割结果保存在我的i变量中,该变量没有删除每个域之后的换行符。 感谢所有评论。

谢谢