#!/usr/bin/env python  
#coding:GBK  
#site www.jb200.com
  
''''' 
author: wikeryong 
date:   2013-09-14 09:35:59  
'''  
import socket  
import sys  
import time  
import datetime  
import codecs  
import smtplib  
from email.mime.text import MIMEText  
from email.header import Header  
import ctypes  
import random  
ctypes.windll.kernel32.SetConsoleTitleA("Ping 工具 by wikeryong")  
   
ip_list=[  
    ['www.baidu.com',80,'
百度',0]]  
    ]  
  
totalCount=0  
  
def 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] %sn' %(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)