首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

Python 实现ping工具。可配放多个ip

2013-11-08 
Python 实现ping工具。可配置多个ippython 27下实现,python3下可能会报错采用socket的方式,能实现统计每个i

Python 实现ping工具。可配置多个ip

python 27下实现,python3下可能会报错

采用socket的方式,能实现统计每个ip的总耗时。也可采用调用windows的ping命令。

#!/usr/bin/env python#coding:GBK'''author: wikeryongdate:   2013-09-14 09:35:59 '''import socketimport sysimport timeimport datetimeimport codecsimport smtplibfrom email.mime.text import MIMETextfrom email.header import Headerimport ctypesimport randomctypes.windll.kernel32.SetConsoleTitleA("Ping 工具 by wikeryong")ip_list=[    ['www.baidu.com',80,'百度',0]]    ]totalCount=0def t():    return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))def w(content):    print '[%s] %s' %(t(),content)    file_object = open('ping.'+time.strftime('%Y-%m-%d',time.localtime(time.time()))+'.log', 'a')      file_object.write('[%s] %s\n' %(t(),content));      file_object.close()if __name__=='__main__':    #global totalCount    while True:        totalCount+=1        for i in range(len(ip_list)):            startTime = datetime.datetime.now()            try:                IP=ip_list[i][0]                PORT=ip_list[i][1]                remark=ip_list[i][2]                cs=socket.socket(socket.AF_INET,socket.SOCK_STREAM)                address=(IP,PORT)                status = cs.connect_ex((address))                cs.settimeout(60)                #this status is returnback from tcpserver                endTime=datetime.datetime.now()                ip_list[i][3]=int((endTime-startTime).total_seconds()*1000)+ip_list[i][3]                if status != 0 :                    w('Ping%s,IP=%s,PORT=%d,Time=%dms,总耗时=%dms' %(remark,IP,PORT,int((endTime-startTime).total_seconds()*1000),ip_list[i][3]))                else:                    w('Ping%s,IP=%s,PORT=%d,Time=%dms,总耗时=%dms' %(remark,IP,PORT,int((endTime-startTime).total_seconds()*1000),ip_list[i][3]))                            except Exception ,e:                ip_list[i][3]=int((endTime-startTime).total_seconds()*1000)+ip_list[i][3]                endTime=datetime.datetime.now()                w('Ping%s,IP=%s,PORT=%d,Time=%dms,总耗时=%dms' %(remark,IP,PORT,int((endTime-startTime).total_seconds()*1000),ip_list[i][3]))            time.sleep(1)        w('------------------------ 次数:%d --------------------------'%totalCount)        time.sleep(10)        





热点排行