Ajouter un commentaire

Charlie
Identification de l'erreur (Script)

Bonjour fredericmazue,
comment vas-tu?

T'as vu la tête à Sarkozy ce matin aux nouvelles, il avait l'air étourdie : ), je comprends ton empressement à vouloir tourner la page quand on parle de lui (hahaha!), disons je suis pas trop impressioné par le bonhomme hahaha, en plus c'est un ppp(partenaria public privé), vont tous nous appauvrir avec leurs manigeances, je commence à croire en la théorie de la conspiration (voir : The Bilderberg group) ! il a traité son attaché de presse d'imbécile durant son entrevue avec CBS(60 minutes) mais ne t'en fait pas à défaut d'avoir Sarkozy, on a eu Jean Chrétien : )

bon, je retourne à mes moutons...

J'ai presque terminé mon script :D ,

Le script ci-dessous me permet d'entrer mon IP primaire et mes IP secondaires. Ensuite, le ping démarre et tous les pertes de paquets
plus grand que 2% vont ds un fichier: ('c:/tmp/myprimarylogs.xls','w')

Le hic, c'est que je veux ce roulement de ping pour une période de 24 heures et ce, à chaque minute. Malheureusement, ce script ne performe ce ping qu'une seule fois pour toutes les IP et s'arrête ensuite à :

("# Enter Primary IP: ").

Bien entendu, je ne veux pas ce raw_input ("# Enter Primary IP: ").
Tu peux identifier la/les sources de l'erreur ?

Voici mon script ds sa totalité:


import re
import time 
import thread 
import os
import sys


f=open('c:/tmp/primaryip.xls','w')
f.close()

g=open('c:/tmp/workfile.txt','w')
g.close()

h=open('c:/tmp/myprimarylogs.xls','w')
h.close()
 
j=open('c:/tmp/secip.xls','w')
j.close()

def validIP(ipAdd): 
    ipRegex = r"^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$" 
    re_ip = re.compile(ipRegex) 
    return re_ip.match(ipAdd)

def validIP1(ipAdd1): 
    ipRegex = r"^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$" 
    re_ip = re.compile(ipRegex) 
    return re_ip.match(ipAdd1)

def fil(data):
    patt = re.compile(r'\((\d+)% loss\)')
    patt1 = re.compile(r'(\d+.\d+.\d+.\d)')
 
    for line in data.split('\n'):
        
        if line.startswith("Ping statistics for"):
            ip = patt1.search(line).group(1)
            
        if patt.search(line):
            loss_num = int(patt.search(line).group(1))
            
            if loss_num >= 2 :
                s = open('c:/tmp/myprimarylogs.xls', 'a+')
                s.write("%s '%s'\n" % (loss_num, ip))
                s.close()
                # if loss >= 2, return False - then secondary IPs are pinged
                print 'loss_num is >= 2 ', loss_num
                return False
            else:
                print 'loss_num is < 2,', loss_num
                return True

def ping(*fnames):
    g = open(fnames[0], 'w')
    for fn in fnames[1:]:
        f=open(fn, 'r')
        ipList = [line.strip() for line in f.readlines()]
        f.close()
        resList = []
        for ipAdd in ipList:
            pingaling =os.popen("ping %s" %(ipAdd),"r")
            data = pingaling.read()
            resList.append(data)
            # if loss > 2, ping secondary IPs
            proceed = fil(data)
            if proceed:
                break       
        g.write('/n'.join(resList))
        if proceed:
            break
    g.close()
 
def get_IPs(fnP, fnS):
    while True:
        ipAddP = raw_input("# Enter Primary IP: ")
        if validIP(ipAddP):
            f = open(fnP, 'w')
            f.write(ipAddP.strip() + "\n")
            f.close()
            break
        else:
            print "Invalid IP."
    ipList = []
    while True:
        while True:
            ipAddS = raw_input("# Enter Secondary IP: ")
            if validIP(ipAddS):
                ipList.append(ipAddS.strip())
                break
            else:
                print "Invalid IP"
        s = raw_input("# Enter another IP? Y/N: " )
        if s.upper() == "N":
            f = open(fnS, 'w')
            f.write('\n'.join(ipList))
            f.close()
            break
 
fnP = 'c:/tmp/primaryip.xls'
fnS = 'c:/tmp/secip.xls'
fnW = 'c:/tmp/workfile.txt'
 
get_IPs(fnP, fnS)
ping(fnW, fnP, fnS)

def main():
    the_time = time.time()
    start_time = the_time
    end_time = the_time + (60*60*24)  # 24 hrs
    get_IPs(fnP, fnS)
    while the_time < end_time:
        ping(fnW, fnP, fnS)
        time.sleep(60)    # wait 60 seconds
        the_time = time.time() # get the new time
 
 
if __name__ == "__main__":
    main()

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 FFFF   GGG    GGG   BBBB       J 
F G G B B J
FFF G GG G GG BBBB J
F G G G G B B J J
F GGG GGG BBBB JJJ