繁体   English   中英

需要帮助来创建一个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

就像标题所说的那样,我需要指出正确的方向。 我不是在寻找“这是您的代码”(我最近开始使用Python进行编码,因此我的理解是非常基础的)

但基本上,我将拥有一个充满主机名的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.gethostbyname(lines)行,并说:“ 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM