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数据结构与算法之图的广度优先与深度优先搜索算法示例
Dec 14 Python
基于Pandas读取csv文件Error的总结
Jun 15 Python
Sanic框架安装与简单入门示例
Jul 16 Python
Python3 jupyter notebook 服务器搭建过程
Nov 30 Python
浅析python的Lambda表达式
Feb 27 Python
Django框架安装方法图文详解
Nov 04 Python
Python socket实现的文件下载器功能示例
Nov 15 Python
解决tensorflow训练时内存持续增加并占满的问题
Jan 19 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
Feb 07 Python
Python如何转换字符串大小写
Jun 04 Python
python 下载文件的多种方法汇总
Nov 17 Python
基于python制作简易版学生信息管理系统
Apr 20 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
曾在DC漫画界反派角色扮演的演员,谁才是你心目中的小丑之王?
2020/04/09 欧美动漫
PHP将字符分解为多个字符串的方法
2014/11/22 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
2017/06/21 PHP
禁止JQuery中的load方法装载IE缓存中文件的方法
2009/09/11 Javascript
jQuery对表单的操作代码集合
2011/04/06 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
2015/01/13 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
2015/11/30 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
详解JS去重及字符串奇数位小写转大写
2016/12/29 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
JavaScript实现时间表动态效果
2017/07/15 Javascript
Bootstrap 模态框(Modal)带参数传值实例
2017/08/20 Javascript
Vue中封装input组件的实例详解
2017/10/17 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
2019/12/31 Javascript
基于vue-draggable 实现三级拖动排序效果
2020/01/10 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
[03:03]DOTA2 2017国际邀请赛开幕战队入场仪式
2017/08/09 DOTA
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
基于Python实现对PDF文件的OCR识别
2016/08/05 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
2017/11/08 Python
python3实现公众号每日定时发送日报和图片
2018/02/24 Python
python中logging包的使用总结
2018/02/28 Python
Python实现FTP弱口令扫描器的方法示例
2019/01/31 Python
HTML5的一个显示电池状态的API简介
2015/06/18 HTML / CSS
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
Gweniss格温妮丝女包官网:英国纯手工制造潮流包包品牌
2018/02/07 全球购物
俄罗斯汽车零件和配件在线商店:CarvilleShop
2019/11/29 全球购物
教师党员批评与自我批评
2014/10/15 职场文书
党员考试作弊检讨书1000字
2015/02/16 职场文书
婚宴致辞
2015/07/28 职场文书
详解解Django 多对多表关系的三种创建方式
2021/08/23 Python
灵能百分百第三季什么时候来?
2022/03/15 日漫
【DOTA2】总决赛血虐~ XTREME GAMING vs MAGMA - OGA DOTA PIT 2022 CN
2022/04/02 DOTA