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 time模块详解(常用函数实例讲解,非常好)
Apr 24 Python
python如何把嵌套列表转变成普通列表
Mar 20 Python
Python中利用xpath解析HTML的方法
May 14 Python
创建pycharm的自定义python模板方法
May 23 Python
transform python环境快速配置方法
Sep 27 Python
Python中整数的缓存机制讲解
Feb 16 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
Sep 11 Python
python对象转字典的两种实现方式示例
Nov 07 Python
使用Python脚本从文件读取数据代码实例
Jan 19 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
Django Session和Cookie分别实现记住用户登录状态操作
Jul 02 Python
PyCharm 安装与使用配置教程(windows,mac通用)
May 12 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使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
ArrayList类(增强版)
2007/04/04 Javascript
json原理分析及实例介绍
2012/11/29 Javascript
JQUERY dialog的用法详细解析
2013/12/19 Javascript
js生成随机数之random函数随机示例
2013/12/20 Javascript
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
Nodejs学习笔记之Global Objects全局对象
2015/01/13 NodeJs
jquery实现上传文件大小类型的验证例子(推荐)
2016/06/25 Javascript
jQuery插件实现可输入和自动匹配的下拉框
2016/10/24 Javascript
基于MVC方式实现三级联动(JavaScript)
2017/01/23 Javascript
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
2017/07/07 Javascript
AngularJS中的路由使用及实现代码
2017/10/09 Javascript
如何在vue中使用ts的示例代码
2018/02/28 Javascript
使用p5.js临摹动态图形
2019/10/23 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
[02:40]2014DOTA2 国际邀请赛中国区预选赛 四大豪门抵达华西村
2014/05/23 DOTA
Python实现二叉树结构与进行二叉树遍历的方法详解
2016/05/24 Python
对Python中gensim库word2vec的使用详解
2018/05/08 Python
Flask框架Flask-Principal基本用法实例分析
2018/07/23 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
UNOde50美国官网:西班牙珠宝品牌
2020/08/15 全球购物
五一促销活动总结
2014/07/01 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
送达通知书
2015/04/25 职场文书
高三毕业感言
2015/07/30 职场文书
《画家和牧童》教学反思
2016/02/17 职场文书
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript