需要帮助创建一个 Python 脚本,该脚本从 txt 文件读取主机名、ping 主机名、解析 IP 并将其打印到另一个文本文件

Need help creating a Python script that reads hostnames from a txt file, pings the hostname, resolves the IP and prints it to another text file

正如标题所说,我需要为此指明正确的方向。我不是在寻找 "Here's your code"(我最近开始在 Python 中编码,所以我的理解处于非常基础的水平)

但基本上我会有一个充满主机名的 txt 文件(每行一个) 我需要 ping 以查看它们是否 1. 活动和 2. 该活动主机名的 IP-address 是什么。然后我需要程序将主机名+IP输出到txt文件。

我阅读了一些关于这个主题的内容,似乎子流程是可行的方法。 时间不是很重要,所以我不需要多线程。

总而言之,关于从哪里开始的任何好的提示(以便我可以理解我正在输入的内容)?

编辑:: 这就是我的进展:

import ping, socket

hostsFile = open('hostnames.txt', 'r')
lines = hostsFile.readlines()
addr = socket.gethostbyname(lines)

for lines in hostsFile:
    print 'IP-address of', hostname
    print 'is', addr 
    try:
        ping.verbose_ping(count=3)
        delay = ping.Ping(timeout=2000).do()
    except socket.error, e:
        print "Ping Error:", e

它现在 returns 一个错误,指的是 addr = socket.gethostbyname(lines) 行,说:"TypeError: must be string, not list"

虽然我确实有点理解这个错误,但我不知道如何解决它。

您可以使用python 的ping 和socket 模块来完成所需的任务。 套接字模块有一个函数 gethostbyname() 获取主机名和 return 它的 ip 地址。

相关代码如下,您可以在这段代码中实现读写文本文件的功能。

import ping, socket
hostname = 'maps.google.com'
addr = socket.gethostbyname(hostname)
print 'The address of ', hostname, 'is', addr
try:
    ping.verbose_ping('www.google.com', count=3)
    delay = ping.Ping('www.wikipedia.org', timeout=2000).do()
except socket.error, e:
    print "Ping Error:", e