实验拓扑:
PC的IP地址和五台交换机的地址在同一网段,具体IP如图所示。现在保证直连网络能够通信,并且故意将SW4的接口shutdown掉,保证无法联通,作为对照的测试设备。
在PC上运行python代码,测试与五台交换机的连通性。
由于本次测试使用的是pythonping模块,这并不是python自带的模块,需要使用pip进行下载,具体命令:pip3 install pythonping。
python版本:python 3.9
实验代码:
#导入pythoning的模块
from pythonping import ping
#导入datetime模块来保存检查的日期
from datetime import datetime
#获取当前的日期和具体时间
now = datetime.now()
date = "%s-%s-%s" % (now.month, now.day, now.year)
time = "%s-%s-%s" % (now.hour, now.minute, now.second)
#打开存放五台交换机IP地址的文件
ip_list = open("ip_list.txt", "r")
#使用追加读写的方式创建一个以日期命名的文件,方便每日检查
f = open(date + ".txt", "a+")
#在文件中首先写入检查的具体时间
f.write("Time: " + time + "\n")
#通过for循环遍历每台设备的IP地址
for line in ip_list:
ip = ip = line.strip()
ping_result = ping(ip)
#pythonping如果能够ping通,返回值内有Reply这个字符串,失败时则没有。我们可以通过这个不同来打印出最后的结果
if "Reply" in str(ping_result):
print(ip + " is reachable.")
#将能够通信的IP地址写入文档中
f.write(ip + "\n")
else:
print(ip + " is not reachable.")
ip_list.close()
f.close()
运行结果:
在编译器中运行,可以看到只有192.168.56.44的连通性出现了故障,和我们的实验环境符合。再继续看文件夹中创建的.txt文件:
打开.txt文件进行检查:
可以看到我们已经将能够ping通的设备输入了设备之中。
参考资料:《网络工程师的python之路》