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 相关文章推荐
利用QT写一个极简单的图形化Python闹钟程序
Apr 07 Python
python类继承与子类实例初始化用法分析
Apr 17 Python
Python中属性和描述符的正确使用
Aug 23 Python
python实现解数独程序代码
Apr 12 Python
详谈Python高阶函数与函数装饰器(推荐)
Sep 30 Python
python traceback捕获并打印异常的方法
Aug 31 Python
python分批定量读取文件内容,输出到不同文件中的方法
Dec 08 Python
初次部署django+gunicorn+nginx的方法步骤
Sep 11 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
Nov 19 Python
Python发送手机动态验证码代码实例
Feb 28 Python
python自动从arxiv下载paper的示例代码
Dec 05 Python
Pytorch之扩充tensor的操作
Mar 04 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异常处理技术,顶级异常处理器
2012/06/13 PHP
在smarty中调用php内置函数的方法
2013/02/07 PHP
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
PHP写的资源下载防盗链类分享
2014/05/12 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
CSS常用网站布局实例
2008/04/03 Javascript
js 图片等比例缩放代码
2010/05/13 Javascript
精通Javascript系列之数据类型 字符串
2011/06/08 Javascript
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
浅谈JavaScript中Date(日期对象),Math对象
2015/02/05 Javascript
JQuery实现简单的服务器轮询效果实例
2016/03/31 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
Bootstrap学习笔记之js组件(4)
2016/06/12 Javascript
javascript中活灵活现的Array对象详解
2016/11/30 Javascript
Vue中添加过渡效果的方法
2017/03/16 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
基于Vue框架vux组件库实现上拉刷新功能
2017/11/28 Javascript
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
[03:22]DAC最前线(第二期)—DOTA2亚洲邀请赛主赛场周边及线路探访
2015/01/24 DOTA
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
python中将一个全部为int的list 转化为str的list方法
2018/04/09 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
2019/05/21 Python
利用CSS3实现折角效果实例源码
2016/09/28 HTML / CSS
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
2015年毕业生自我鉴定模板
2014/09/19 职场文书
医德医风自我评价
2014/09/19 职场文书
北大自主招生自荐信
2015/03/04 职场文书
地道战观后感400字
2015/06/04 职场文书
选调生挂职锻炼工作总结
2015/10/23 职场文书
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS