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实现批量改文件名称的方法
May 25 Python
Python素数检测实例分析
Jun 15 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
Feb 14 Python
详解Django的model查询操作与查询性能优化
Oct 16 Python
Python sklearn KFold 生成交叉验证数据集的方法
Dec 11 Python
深入浅析python3中的unicode和bytes问题
Jul 03 Python
python计算无向图节点度的实例代码
Nov 22 Python
Python的形参和实参使用方式
Dec 24 Python
将python文件打包exe独立运行程序方法详解
Feb 12 Python
python类共享变量操作
Sep 03 Python
python中scipy.stats产生随机数实例讲解
Feb 19 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
PHP 出现乱码和Sessions验证问题的解决方法!
2008/12/06 PHP
在php中设置session用memcache来存储的方法总结
2016/01/14 PHP
关于PHP内置的字符串处理函数详解
2017/02/04 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
JavaScript静态的动态
2006/09/18 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
JS构建页面的DOM节点结构的实现代码
2011/12/09 Javascript
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
浅析JavaScript事件和方法
2015/02/28 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
2015/03/26 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
关于网页中的无缝滚动的js代码
2016/06/09 Javascript
JavaScript ES5标准中新增的Array方法
2016/06/28 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
2017/12/25 jQuery
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
2020/08/07 Javascript
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
初步讲解Python中的元组概念
2015/05/21 Python
python爬虫获取京东手机图片的图文教程
2017/12/29 Python
python爬取各类文档方法归类汇总
2018/03/22 Python
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
Python实现的拉格朗日插值法示例
2019/01/08 Python
python 内置函数汇总详解
2019/09/16 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
Django中template for如何使用方法
2021/01/31 Python
幼师求职信
2014/06/23 职场文书
个人廉洁自律总结
2015/03/06 职场文书
珍爱生命主题班会
2015/08/13 职场文书
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js
Java 中的 Lambda List 转 Map 的多种方法详解
2022/07/07 Java/Android