IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Intégrer des variables ds un threading


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Par défaut Intégrer des variables ds un threading
    Bonjour,
    quelqu'un pourrais m'indiquer ou suggérer comment je pourrais incorporer c'est 2 scripts pour valider plusieurs IP (5) pour me donner le status de chacun d'eux. (les 2 scripts fonctionnent a merveille).

    script no. 1 (valide un ip)
    -------------------------------------------------


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import re 
    ipAddress = raw_input('donnez une adresse ip: ') 
     
    def validateIP(ipAddress): 
        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) 
        match = re_ip.match(ipAddress) 
        if not match: 
            return  "erreur, %s n'est pas une adresse IP valide" %(ipAddress) 
        else: 
            return "oui, %s est une adresse IP valide" %(ipAddress) 
     
    print(validateIP(ipAddress))
    --------------------------------------------------------------------

    script no. 2(ping differents hosts).

    -------------------------------------------------------------------

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    import os
    import re
    import time
    import sys
    from threading import Thread
     
    class testit(Thread):
       def __init__ (self,ip):
          Thread.__init__(self)
          self.ip = ip
          self.status = -1
       def run(self):
          pingaling = os.popen("ping -q -c2 "+self.ip,"r")
    # This code is what each parallel thread does
    # the 'run' method is triggered when 'start' is called
          while 1:
            line = pingaling.readline()
            if not line: break
            igot = re.findall(testit.lifeline,line)
            if igot:
               self.status = int(igot[0])
     
    testit.lifeline = re.compile(r"(\d) received")
    report = ("No response","Partial Response","Alive")
     
    print time.ctime()
     
    pinglist = []
     
    for host in range(60,70):
       ip = "192.168.200."+str(host)
    # create a thread, add it to a thread list
       current = testit(ip)
       pinglist.append(current)
    # start the thread running
       current.start()
     
    for pingle in pinglist:
    # await the completion of each thread in turn
       pingle.join()
       print "Status from ",pingle.ip,"is",report[pingle.status]
     
    print time.ctime()
    --------------------------------------------------------------------

    Edité par Guigui_: merci de penser aux balises [CODE]

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Ben ça me semble plutôt simple...

    1. Tu crées une liste qui contient tes 5 IP.
    2. Pour chaque IP de la liste, tu testes si elle est valide
    >> 3. Si elle est valide tu essaies de pinguer et tu affiches le résultat

    Voilà pour l'algo, je pense pas que tu aies trop de difficultés pour traduire ce petit algo en code... Les parties 2 et 3 peuvent être exécutées dans un thread je pense. Un thread pour chaque ip je dirais !?
    Dernière modification par Invité ; 09/07/2007 à 12h09.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Par défaut Fabriquer une liste - Débutant
    Bonjour à tous,

    je crois que ma question n'est pas vraiment claire alors je la formule d'une autre façon...

    la partie du script ci dessous me donne le résultat d'un ping pour les serveurs
    192.168.200.60 jusqu' à 192.168.200.69 alors, je veux changer cette partie(for host in range(60,70): pour une ligne de commande qui me permet de pinger 5 IP que je tappe manuellement, que me conseillé vous comme pour remplacer ce (for host in range(60,70): ?
    ------------------------------------------------------------------
    pinglist = []

    for host in range(60,70): <------??????????
    ip = "192.168.200."+str(host) <------??????????
    # create a thread, add it to a thread list
    current = testit(ip)
    pinglist.append(current)
    # start the thread running
    current.start()

    ------------------------------------------------------------------

    Merci/Charlie City

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/02/2014, 14h13
  2. [XL-2003] Intégrer des variables dans un nom d'objet
    Par Alahsan dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/09/2011, 19h55
  3. Partager des variables entre Threads
    Par ToTo13 dans le forum Concurrence et multi-thread
    Réponses: 7
    Dernier message: 01/04/2010, 16h09
  4. Thread et visibilité des variables
    Par _xme_ dans le forum Concurrence et multi-thread
    Réponses: 5
    Dernier message: 28/02/2010, 11h26
  5. [Compiler] Comment intégrer des variables WS ?
    Par matt41fr dans le forum MATLAB
    Réponses: 5
    Dernier message: 27/10/2008, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo