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



正如标题所说,我需要在这方面指向正确的方向。我不是在寻找"这是你的代码"(我最近开始用Python编码,所以我的理解是非常基本的)

但基本上,我会有一个装满hostnamne的txt文件(每行一个)我需要ping查看它们是否为1。Active和2。活动主机名的IP地址是多少。然后我需要程序将主机名+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

它现在返回一个引用addr=socket.ghostbyname(行)行的错误,表示:"TypeError:必须是字符串,而不是列表"

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

您可以使用python的ping和socket模块来实现所需的任务。套接字模块有一个函数gethostbyname(),它获取主机名并返回其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

最新更新