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 import自定义模块方法
Feb 12 Python
python使用Flask框架获取用户IP地址的方法
Mar 21 Python
python获得linux下所有挂载点(mount points)的方法
Apr 29 Python
python获取各操作系统硬件信息的方法
Jun 03 Python
python 与GO中操作slice,list的方式实例代码
Mar 20 Python
Python基础练习之用户登录实现代码分享
Nov 08 Python
Python3实现发送QQ邮件功能(文本)
Dec 15 Python
Python实现的读取/更改/写入xml文件操作示例
Aug 30 Python
python实现的config文件读写功能示例
Sep 24 Python
Python 利用flask搭建一个共享服务器的步骤
Dec 05 Python
在python中对于bool布尔值的取反操作
Dec 11 Python
python UIAutomator2使用超详细教程
Feb 19 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不使用copy()函数复制文件的方法
2015/03/13 PHP
php二维码生成以及下载实现
2017/09/28 PHP
PHP number_format函数原理及实例解析
2020/07/14 PHP
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
easyui datagrid 键盘上下控制选中行示例
2014/03/31 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
js实现商品抛物线加入购物车特效
2020/11/18 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
NodeJs中express框架的send()方法简介
2017/06/20 NodeJs
详解Vue中一种简易路由传参办法
2017/09/15 Javascript
NodeJs通过async/await处理异步的方法
2017/10/09 NodeJs
JS实现留言板功能[楼层效果展示]
2017/12/27 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
[41:11]完美世界DOTA2联赛PWL S2 Inki vs Magma 第一场 11.22
2020/11/24 DOTA
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
Python采集代理ip并判断是否可用和定时更新的方法
2018/05/07 Python
Python实现的爬取小说爬虫功能示例
2019/03/30 Python
基于Python中的yield表达式介绍
2019/11/19 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
Myprotein比利时官方网站:欧洲第一运动营养品牌
2020/10/04 全球购物
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
党员年终民主评议的自我评价
2013/11/05 职场文书
社区优秀志愿者材料
2014/02/02 职场文书
细节决定成败演讲稿
2014/05/12 职场文书
植树节标语
2014/06/27 职场文书
高中生旷课检讨书
2014/10/08 职场文书
2014年居委会工作总结
2014/12/09 职场文书
铁路安全反思材料
2014/12/24 职场文书
新闻发布会新闻稿
2015/07/17 职场文书
Nginx配置SSL证书出错解决方案
2021/03/31 Servers
Python中的程序流程控制语句
2022/02/24 Python
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技