Python检查ping终端的方法
菜鸟一枚,写着试了试,虽说有点杂乱,但还是能用,我是在linux下运行的
大致说下过程:
1、把需要ping的网段中所有ip存到数组中(我是放到数组中了,其实直接for循环,一个个的也行)
2、遍历数组,逐个ping
3、根据ping返回的字符串,判断是否ping通
4、结果存入txt中
下面上代码咯(其实可以简化代码的,我这里就不简化了)
#!/usr/bin/envpython
#coding:utf8
importtime
importsubprocess
importcodecs
importos
importre
#telnethost
defpingComputer(host,statusFile):
status1='pingsuccess'
status2='pingfaild'
errorStr='Destination'
foripAddinhost:
print("get:"+ipAdd+"status")
#getnowtime
nowTime=time.strftime('%Y-%m-%d%H:%M:%S',time.localtime(time.time()))
p=os.popen("ping-q-c2-r"+ipAdd)
line=p.read()
#judgeerrorstrinlineif
iferrorStrinline:
writeToText(nowTime,ipAdd,status2,statusFile)
else:
writeToText(nowTime,ipAdd,status1,statusFile)
#writestatusinformationtotxt
defwriteToText(nowTime,ipAdd,status,statusFile):
s_text='TIME:'+nowTime+'\t'+'IP:'+ipAdd+'\t'+'STATUS:'+status+'\r\n'
if'0'==judgeFile(statusFile):
withopen(statusFile,'a')asf:
f.write(s_text)
f.close()
if'1'==judgeFile(statusFile):
withopen(statusFile,'w')asf:
f.write(s_text)
f.close()
#DeterminewhetherstatusFileexists
#0:exists
#1:noexists
defjudgeFile(statusFile):
ifos.path.exists(statusFile):
return'0'
else:
return'1'
if__name__=="__main__":
IpFirst='192.168.1.'
#ip:1~254
host=[]
forjinrange(254):
host.append(IpFirst+str(j+1))
#writefile
statusFile='/root/UpStatus.txt'
pingComputer(host,statusFile)
就是一台一台的ping,判断,有点慢!
以上这篇Python检查ping终端的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。