亲爱, 我是Python的初学者,现在我尝试创建脚本,首先:在文本文件中过滤ip-addresses(。第二,检查此文件中地址的IP可用性。但是,例如,如果我的代码产生无限结果其中一个IP地址不可用,并没有打破循环消息:"请重新检查IP地址列表或设备"。我也看到每个可用IP后的消息,但它应该只有全部IP可以到达。 请帮助我。 提前致谢
import re
import subprocess
badlist = open("List Nodes.txt", "r")
for each in badlist.readlines():
badlist.seek(0)
a = re.findall(r"[0-9]+(?:\.[0-9]+){3}", each)
check = False
while True :
for ip in a:
ping_reply = subprocess.call(['ping', '-c', '3', '-w', '3', '-q', '-n', ip], stdout = subprocess.PIPE)
if ping_reply == 0:
print ("\n %s. is reachible " % ip)
check = True
continue
if ping_reply == 2:
print ("\nNo response from device %s." % ip)
check = False
break
else:
print ("\nPing to the following device has FAILED:", ip)
check = False
break
#Evaluating the 'check' flag
if check == False:
print ("Please re-check IP address list or device.\n")
elif check == True:
print ('\nAll devices are reachable. Waiting for command file...\n')
break
执行后出错:
python3.4 SCRIPT_FOR_NTP.py
127.0.0.1。是可达的
所有设备都可以访问。等待命令文件...
127.0.0.2。是可达的
所有设备都可以访问。等待命令文件...
Ping到以下设备已失败:8.8.8.8 请重新检查IP地址列表或设备。
Ping到以下设备已失败:8.8.8.8 请重新检查IP地址列表或设备。
Ping到以下设备已失败:8.8.8.8 请重新检查IP地址列表或设备。