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之print详解
Sep 28 Python
分析Python的Django框架的运行方式及处理流程
Apr 08 Python
Python中的匿名函数使用简介
Apr 27 Python
python抓取百度首页的方法
May 19 Python
浅谈Python的条件判断语句if/else语句
Mar 21 Python
Python第三方库face_recognition在windows上的安装过程
May 03 Python
Python实现GIF图倒放
Jul 16 Python
通过实例了解python__slots__使用方法
Sep 14 Python
python中K-means算法基础知识点
Jan 25 Python
PyQt5通过信号实现MVC的示例
Feb 06 Python
Python实现我的世界小游戏源代码
Mar 02 Python
如何使用pdb进行Python调试
Jun 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中使用Oracle数据库(6)
2006/10/09 PHP
PHP调用Twitter的RSS的实现代码
2010/03/10 PHP
php基于base64解码图片与加密图片还原实例
2014/11/03 PHP
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
toggle()隐藏问题的解决方法
2014/02/17 Javascript
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
JS中sort函数排序用法实例分析
2016/06/16 Javascript
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
jquery Ajax实现Select动态添加数据
2017/06/08 jQuery
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
js实现窗口全屏示例详解
2019/09/17 Javascript
sharp.js安装过程中遇到的问题总结
2020/04/02 Javascript
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
Python中执行存储过程及获取存储过程返回值的方法
2017/10/07 Python
pandas.DataFrame选取/排除特定行的方法
2018/07/03 Python
python使用Matplotlib画饼图
2018/09/25 Python
pandas求两个表格不相交的集合方法
2018/12/08 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
2019/06/17 Python
Python OrderedDict的使用案例解析
2019/10/25 Python
Python3 main函数使用sys.argv传入多个参数的实现
2019/12/25 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
what is the difference between ext2 and ext3
2015/08/25 面试题
领导视察欢迎词
2014/01/15 职场文书
幼儿园秋游感想
2014/03/12 职场文书
小区物业门卫岗位职责
2014/04/10 职场文书
《水乡歌》教学反思
2014/04/24 职场文书
商场周年庆活动方案
2014/08/19 职场文书
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
荆州古城导游词
2015/02/06 职场文书
小兵张嘎电影观后感
2015/06/03 职场文书
趣味运动会新闻稿
2015/07/17 职场文书
Win11跳过联网界面创建本地管理账户的3种方法
2022/04/20 数码科技