Python实现快速多线程ping的方法


Posted in Python onJuly 15, 2015

本文实例讲述了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程序设计有所帮助。

Python 相关文章推荐
Python中解析JSON并同时进行自定义编码处理实例
Feb 08 Python
Python实现将绝对URL替换成相对URL的方法
Jun 28 Python
Python操作MySQL数据库9个实用实例
Dec 11 Python
Python实现TCP/IP协议下的端口转发及重定向示例
Jun 14 Python
python实现m3u8格式转换为mp4视频格式
Feb 28 Python
python3.x提取中文的正则表达式示例代码
Jul 23 Python
python判断无向图环是否存在的示例
Nov 22 Python
python分布式计算dispy的使用详解
Dec 22 Python
Python3 pickle对象串行化代码实例解析
Mar 23 Python
如何对python的字典进行排序
Jun 19 Python
Python实现照片卡通化
Dec 06 Python
如何Python使用re模块实现okenizer
Apr 30 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
Jul 15 #Python
Python的Django框架中if标签的相关使用
Jul 15 #Python
在Python的Django框架中调用方法和处理无效变量
Jul 15 #Python
python实现判断数组是否包含指定元素的方法
Jul 15 #Python
python获取元素在数组中索引号的方法
Jul 15 #Python
Django框架中方法的访问和查找
Jul 15 #Python
Python的Django框架中的Context使用
Jul 15 #Python
You might like
PHP实现远程下载文件到本地
2015/05/17 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
2019/12/13 PHP
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
javascript OFFICE控件测试代码
2009/12/08 Javascript
JS实现self的resend
2010/07/22 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
使用documentElement正确取得当前可见区域的大小
2014/07/25 Javascript
JavaScript中Function详解
2015/02/27 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
浏览器兼容的JS写法总结
2016/04/27 Javascript
浅谈Angular的$q, defer, promise
2016/12/20 Javascript
ES6教程之for循环和Map,Set用法分析
2017/04/10 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
2017/06/13 jQuery
详解 vue.js用法和特性
2017/10/15 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
深入理解Node module模块
2018/03/26 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
JS实现鼠标移动拖尾
2020/12/27 Javascript
Python中MYSQLdb出现乱码的解决方法
2014/10/11 Python
详解Django 中是否使用时区的区别
2018/06/14 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
Win 10下Anaconda虚拟环境的教程
2020/05/18 Python
英国度假别墅预订:Sykes Cottages
2017/06/12 全球购物
党章学习思想汇报
2014/01/14 职场文书
服务之星获奖感言
2014/01/21 职场文书
公司开业庆典主持词
2014/03/21 职场文书
建设投标担保书
2014/05/13 职场文书
反对形式主义、官僚主义、享乐主义和奢靡之风整改措施
2014/09/17 职场文书
2014年自愿离婚协议书范本
2014/09/25 职场文书
安全生产月宣传标语
2014/10/06 职场文书
2015年国庆节活动总结
2015/03/23 职场文书
CSS预处理框架——Stylus
2021/04/21 HTML / CSS