首页 > 编程 > Python > 正文

Python检查ping终端的方法

2019-11-25 13:23:31
字体:
来源:转载
供稿:网友

菜鸟一枚,写着试了试,虽说有点杂乱,但还是能用,我是在linux下运行的

大致说下过程:

1、把需要ping的网段中所有ip存到数组中(我是放到数组中了,其实直接for循环,一个个的也行)

2、遍历数组,逐个ping

3、根据ping返回的字符串,判断是否ping通

4、结果存入txt中

下面上代码咯(其实可以简化代码的,我这里就不简化了)

#!/usr/bin/env python# coding: utf8 import timeimport subprocessimport codecsimport osimport re # telnet hostdef pingComputer(host, statusFile):	status1 = 'ping success'	status2 = 'ping faild'	errorStr = 'Destination'	for ipAdd in host:		print ("get: " +ipAdd + " status")		# get now time		nowTime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))		p = os.popen("ping -q -c 2 -r " + ipAdd)		line = p.read()				# judge errorstr in line if		if errorStr in line:			writeToText(nowTime, ipAdd, status2, statusFile)		else:			writeToText(nowTime, ipAdd, status1, statusFile) 		# write status information to txtdef writeToText(nowTime, ipAdd, status, statusFile):	s_text = 'TIME:' + nowTime + '/t' + 'IP:' + ipAdd + '/t' + 'STATUS:' + status + '/r/n'		if '0' == judgeFile(statusFile):		with open(statusFile, 'a') as f:			f.write(s_text)			f.close()	if '1' == judgeFile(statusFile):		with open(statusFile, 'w') as f:			f.write(s_text)			f.close()							# Determine whether statusFile exists # 0: exists# 1: no existsdef judgeFile(statusFile):	if os.path.exists(statusFile):		return '0'	else:		return '1'			if __name__ == "__main__":	IpFirst = '192.168.1.'	# ip:1~254	host = []	for j in range(254): 		host.append(IpFirst + str(j + 1))	# write file	statusFile = '/root/UpStatus.txt'	pingComputer(host, statusFile)

就是一台一台的ping,判断,有点慢!

以上这篇Python检查ping终端的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表