我写了一个简短的python脚本来读取包含多个远程服务器IP地址的文本文件,我想要ping每个地址,然后打印哪些IP无法访问,哪些是。
clsCfg match {
case Left(config) => // use your config here
case Right(exception) => // handle exception
}
我的输出如下:
import subprocess
`import os
response = subprocess.call(['ping', '-c', '3'])
file = open('IPlist.txt', "r")
def check_IP_from_file(filename):
for lines in file:
ping_reply = subprocess.call(['ping', '-c', '3'])
if response == 0:
print lines, ping_reply
else:
print lines, "is down!
似乎只检查列表中的最后一个IP并为Ping的使用吐出一堆选项。在我的脚本中,我确实定义了Ping选项。这是我非常困惑的地方。我对python很新,所以我可以称之为菜鸟,请指出我正确的方向。
答案 0 :(得分:0)
不是一个完整的答案,因为我不是100%肯定你的目标,而是针对subprocess
的一些指示......使用Popen
代替call
,并制作stoud=subprocess.PIPE
。然后communicate
在下面讨论的方法中。这应该有助于你开始。
import subprocess
import os
p = subprocess.Popen(['ping', '-c', '3'], stdout=subprocess.PIPE)
response, errors = response.communicate()
file = open('IPlist.txt', "r")
def check_IP_from_file(filename):
for lines in file:
ping_reply_proc = subprocess.Popen(['ping', '-c', '3'], stdout=subprocess.PIPE)
ping_reply, ping_errors = subprocess.communicate()
if response == <whatever>:
print lines, ping_reply
else:
print lines, "is down!