正如标题所说,我需要在这方面指向正确的方向。我不是在寻找"这是你的代码"(我最近开始用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