将文本文件中的IP转换为主机名

时间:2018-02-16 20:05:50

标签: python networking

我试图从文本文件中使用IP获取主机名,但我无法从文本文件中读取所有IP,输出只显示一个IP。

以下是我的COED,

import os
import socket

with open('ips.txt', 'r') as f:
    for line in f.read().strip('\n'):
        ip = line.strip()
        b = socket.getfqdn(ip)
        print b

感谢。

1 个答案:

答案 0 :(得分:1)

问题在于:

for line in f.read().strip('\n'):

这会迭代整个文件内容(f.read())而不会跟踪\n。字符串是Python中的迭代,所以基本上你只是迭代文本文件的每个字符。

相反,由于文件对象是可迭代的,您可以逐行进行迭代并获取相关的FQDN:

with open('ips.txt', 'r') as f:
    for line in f:
        ip = line.strip()
        fqdn = socket.getfqdn(ip)
        # print(fqdn)  # Python 3
        print fqdn  # python 2