Python实现快速多线程ping的方法
作者:guoyh 发布时间:2023-05-28 21:35:09
标签:Python,多线程,ping
本文实例讲述了Python实现快速多线程ping的方法。分享给大家供大家参考。具体如下:
#!/usr/bin/python
#_*_coding:utf-8_*_
#
'''
名称:快速多线程ping程序
开发:gyhong gyh9711
日期:20:51 2011-04-25
'''
import pexpect
import datetime
from threading import Thread
host=["192.168.1.1","192.168.1.123","192.168.2.1",
"192.168.1.1","192.168.1.123","192.168.2.1",
"192.168.1.1","192.168.1.123","192.168.2.1",
"192.168.1.1","192.168.1.123","192.168.2.1",
"192.168.1.1"]
report_ok=[]
report_error=[]
class PING(Thread):
def __init__(self,ip):
Thread.__init__(self)
self.ip=ip
def run(self):
Curtime = datetime.datetime.now()
#Scrtime = Curtime + datetime.timedelta(0,minute,0)
#print("[%s]主机[%s]" % (Curtime,self.ip))
ping=pexpect.spawn("ping -c1 %s" % (self.ip))
check=ping.expect([pexpect.TIMEOUT,"1 packets transmitted, 1 received, 0% packet loss"],2)
if check == 0:
print("[%s] 超时 %s" % (Curtime,self.ip))
elif check == 1:
print ("[%s] %s 可达" % (Curtime,self.ip))
else:
print("[%s] 主机%s 不可达" % (Curtime,self.ip))
#多线程同时执行
T_thread=[]
for i in host:
t=PING(i)
T_thread.append(t)
for i in range(len(T_thread)):
T_thread[i].start()
#
#print ("\n=========问题主机情况如下==========\n")
#output(report_error)
#print ("\n=========正常主机情况如下==========\n")
#output(report_ok)
执行结果:
administrator@nagios:/win/pexpect$ ./ping.py
[2011-04-25 21:30:22.126981] 192.168.1.1 可达
[2011-04-25 21:30:22.148376] 192.168.1.1 可达
[2011-04-25 21:30:22.179846] 192.168.1.1 可达
[2011-04-25 21:30:22.203691] 192.168.1.1 可达
[2011-04-25 21:30:22.227696] 192.168.2.1 可达
[2011-04-25 21:30:22.134049] 超时 192.168.1.123
[2011-04-25 21:30:22.145610] 超时 192.168.2.1
[2011-04-25 21:30:22.157558] 超时 192.168.1.123
[2011-04-25 21:30:22.167898] 超时 192.168.2.1
[2011-04-25 21:30:22.197572] 超时 192.168.1.123
[2011-04-25 21:30:22.202430] 超时 192.168.2.1
[2011-04-25 21:30:22.215561] 超时 192.168.1.123
[2011-04-25 21:30:22.229952] 超时 192.168.1.1
希望本文所述对大家的Python程序设计有所帮助。


猜你喜欢
- 最近网站访问量大增,可能有些频道程序也有一些问题,造成了MySQL数据库出现Forcing close of thread 28790 us
- 一、写在前面我从未想过自己会写python系列的自动化文章,有些同学会问,那你现在为什么又开始写了?不止一个人找过我,问我可以写一些Pyth
- 案例package mainimport ( _ "github.com/go-sql-driver/mysql&q
- 区别:series,只是一个一维数据结构,它由index和value组成。dataframe,是一个二维结构,除了拥有index和value
- ancestor:祖先adjacent:相邻algorithm:运算法则anonymous box:无名盒子。例: anonymous in
- 一、系统要求电影售票系统程序,应具备以下几点功能:1.用户认证系统用户分为用户、管理员两个角色,系统可根据不同用户角色权限进入不同界面,所有
- #!/usr/bin/python#coding:utf-8#write:JACK#info:ftp exampleimport ftpli
- 谈到用户界面交互总少不了事件,前面一系列文章介绍的鼠标光标、坐标、弹出式提示框等实现的底层其实都是事件处理,只不过matplotlib或其他
- 前面两章,我们分析了Linux内存分配的策略以及Linux通过使用 OOM_Killer的机制解决了“超售”引起的风险,MySQL同其他的应
- 背景简介ImageAI是一个面向计算机视觉编程的Python库,支持最先进的机器学习算法。主要图像预测,物体检测,视频对象检测与跟踪等多个应
- 跨域当我们遇到请求后台接口遇到 Access-Control-Allow-Origin 时,那说明跨域了。跨域是因为浏览器的同源策略所导致,
- 前言我们编写的Web项目部署之后,经常会因为需要进行配置变更或功能迭代而重启服务,单纯的kill -9 pid的方式会强制关闭进程,这样就会
- python读文件操作1. read三种不同的方式f = open('hello.txt') #'hello.txt
- 1.使用jobsName.ini文件保存要创建job的名字jobs1jobs2jobs32.使用Jenkins创建job时自动生成的conf
- 相对于Firefox2来说,Firefox3除了采用全新的Gecko 1.9引擎外,在性能、稳定性和安全性方面进行许多改进,在我们最关心的对
- 如果你是个学生,你应该会C,C++和Java。还会一些VB,或C#/.NET。多少你还可能开发过一些Web网页,你知道一些HTML,CSS和
- 默认本系列的的读者已经初步熟悉tensorflow。我们通过tf.Variable构造一个variable添加进图中,Variable()构
- YEAR() 函数返回一个整数值,它表示指定日期的年份,一般使用为:Year(时间),如:YEAR('2023-03-14
- 以前看到 andy的关于“Quiet Structure”觉的很不错,于是今天到她的个人站点上逛逛,发现不少好的文章,今天介绍的是
- GitPython 是一个用于操作 Git 版本库的 python 包,它提供了一系列的对象模型(库 - Repo、树 - Tree、提交