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

Réseau/Web Python Discussion :

Ping et Python


Sujet :

Réseau/Web Python

  1. #1
    ms7
    ms7 est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Points : 66
    Points
    66
    Par défaut Ping et Python
    Bonjour,

    comment faire du ping dans python???
    J´ai trouver ce petit code qui me permet de faire un ping et de m´afficher les statistiques (packet loss,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    import os,sys
    if os.system('ping ' + sys.argv[1]):
        print 'KO'
    else:
        print 'OK'
    exemple:
    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
     
    linux:~/Python/Tutorials # python pingpython.py www.google.com
    PING www.l.google.com (64.233.183.104) 56(84) bytes of data.
    64 bytes from 64.233.183.104: icmp_seq=1 ttl=239 time=49.4 ms
    64 bytes from 64.233.183.104: icmp_seq=2 ttl=239 time=50.2 ms
    64 bytes from 64.233.183.104: icmp_seq=3 ttl=239 time=57.5 ms
    64 bytes from 64.233.183.104: icmp_seq=4 ttl=239 time=50.1 ms
    64 bytes from 64.233.183.104: icmp_seq=5 ttl=239 time=49.3 ms
    64 bytes from 64.233.183.104: icmp_seq=6 ttl=239 time=51.1 ms
    64 bytes from 64.233.183.104: icmp_seq=7 ttl=239 time=50.5 ms
    64 bytes from 64.233.183.104: icmp_seq=8 ttl=239 time=57.9 ms
     
    --- www.l.google.com ping statistics ---
    8 packets transmitted, 8 received, 0% packet loss, time 7027ms
    rtt min/avg/max/mdev = 49.330/52.028/57.901/3.328 ms
    OK
    J´aimerai maintenant recuperer les donnees (packet loss, min, avg, max, mdev) et les stocker dans un base de donnees mysql que j´ai deja creee....

    Merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Essaie de faire une redirection du résultat vers un fichier en utilisant '>' ou '>>' (je m'en souviens plus).
    Ensuite tu traites ce fichier texte (et là ça me regarde pas ce que tu en fais).

  3. #3
    ms7
    ms7 est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Points : 66
    Points
    66
    Par défaut
    J´avais pas vu la chose comme ca...je vais essayer...Merci

  4. #4
    ms7
    ms7 est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Points : 66
    Points
    66
    Par défaut
    salut j´ai essaye mais ce n´est pas vraiment ce que je recherchai...

    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    import os,sys
    if os.system('ping ' + sys.argv[1]):
        print 'KO'
     
    else:
        print 'OK'
    et je cree un fichier .txt (pingstats.txt) et je lance la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    python pingpython.py www.google.com > pingstats.txt
    ...et je recupere les resultats dans pingstats.txt. Mais est-il possible de lancer cette commande depuis python????

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if os.system('ping ' + sys.argv[1] + ' > fichier.txt'):
    Je croit que ça devrait fonctionner et c'était mon idée de départ (désolé j'aurais dû être plus précis).

  6. #6
    ms7
    ms7 est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Points : 66
    Points
    66
    Par défaut

    Merci beaucoup c nickel...

    comment pourrai-je recuper les valeurs telles que packet loss, min, avg, max et les attribuer a des variables?
    lorsque que tu dis "traiter le fichier", que veux-tu dire exactement?

    merci encore

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 20
    Points : 16
    Points
    16

  8. #8
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 121
    Points : 127
    Points
    127
    Par défaut
    c sale de faire appel à une commande systeme, tu à un module qui permet de pinger, http://gnist.org/~lars/code/ping/
    Je crois qu'il a besoin dautres fichiers, mais tu pourra les trouver avec google.

    Et taura direct tes resultats plutot que de parser la reponse de ping.exe

  9. #9
    ms7
    ms7 est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Points : 66
    Points
    66
    Par défaut
    c le ping code en python...Mais comment l´utiliser??

  10. #10
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 121
    Points : 127
    Points
    127
    Par défaut
    c'est ecrit dedans...

    pingNode() avec diifferentes options à toi de regarder le code....

  11. #11
    ms7
    ms7 est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Points : 66
    Points
    66
    Par défaut
    desole je n´y arrive pas...ca ma l´air assez compliquee...

    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
     
    >>> from ping import pingNode
    >>> node= pingNode()
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
      File "ping.py", line 171, in pingNode
        _error("")
      File "ping.py", line 400, in _error
        raise Exception, str(err)
    Exception
    >>> ping = pingNode(alive=0, timeout=1.0, ipv6=0, number=9, flood=0, size=56)
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
      File "ping.py", line 171, in pingNode
        _error("")
      File "ping.py", line 400, in _error
        raise Exception, str(err)
    Exception
    Comment recuperer les infos du packet loss et de max, min ,avg????

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 89
    Points : 107
    Points
    107
    Par défaut Et si tu pinguais un host !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    from ping import pingNode
     
    print pingNode(number=5,node='192.168.1.1')
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    PING 192.168.1.1 (192.168.1.1): 84 data bytes (20+8+56)
    64 bytes from 192.168.1.1: icmp_seq=1 ttl=254 time=0.00000 ms
    64 bytes from 192.168.1.1: icmp_seq=2 ttl=254 time=0.00000 ms
    64 bytes from 192.168.1.1: icmp_seq=3 ttl=254 time=0.00000 ms
    64 bytes from 192.168.1.1: icmp_seq=4 ttl=254 time=0.00000 ms
    64 bytes from 192.168.1.1: icmp_seq=5 ttl=254 time=0.00000 ms
     
    --- 192.168.1.1 ping statistics ---
    5 packets transmitted, 5 packets received, 0% packet loss
    round-trip min/avg/max/stddev = 0.000/0.000/0.000/0.000 ms
    None

  13. #13
    ms7
    ms7 est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Points : 66
    Points
    66
    Par défaut
    ok merci mais c identique a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    linux:~/wifiTools/Tests/Application/v1.1 # python ping.py -c3 www.google.com
    PING www.google.com (66.249.93.99): 84 data bytes (20+8+56)
    64 bytes from 66.249.93.99: icmp_seq=1 ttl=244 time=5216.68601 ms
    64 bytes from 66.249.93.99: icmp_seq=2 ttl=244 time=66.48397 ms
    64 bytes from 66.249.93.99: icmp_seq=3 ttl=244 time=94.03896 ms
     
    --- www.google.com ping statistics ---
    3 packets transmitted, 3 packets received, 0% packet loss
    round-trip min/avg/max/stddev = 66.484/1792.403/5216.686/2421.360 ms
    comment pourrais-ai je recuperer uniquement les valeurs : packet loss, min, avg, max, stddev et les affecter a des variables?

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 89
    Points : 107
    Points
    107
    Par défaut
    Tu commentes les différents prints que tu ne veux plus avoir dans pingNode
    et à la dernière ligne(de la fonction pingNode bien sur) tu ajoutes celle-là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    return{'lost':plost,'min':mint*1000,'avg':(tsum/start)*1000,'max':maxt*1000,'stddev':math.sqrt(vari)*1000}
    Ce qui te permet dans ton script de récupérer tes variables dans un dictionnaire comme dans cet exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    from ping import pingNode
     
    monping=pingNode(number=5,node='192.168.1.1')
    print 'min = ',monping['min'], 'max = ',monping['max']
    ce qui donnes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    min =  0.0 max =  0.0

  15. #15
    ms7
    ms7 est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Points : 66
    Points
    66
    Par défaut
    Parfait Merci Beaucoup....je Tag...:d

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ping sous Python
    Par lbcg36 dans le forum Réseau/Web
    Réponses: 7
    Dernier message: 29/12/2013, 13h57
  2. CORBA & PYTHON
    Par stan91stan dans le forum CORBA
    Réponses: 5
    Dernier message: 10/06/2004, 12h32
  3. Ping sous protocole TCP (et non UDP)
    Par ovdz dans le forum Développement
    Réponses: 2
    Dernier message: 19/06/2003, 14h10
  4. Ping de broadcast sous Windows
    Par ovh dans le forum Développement
    Réponses: 10
    Dernier message: 09/05/2003, 18h40
  5. ping sur un port
    Par Neo41 dans le forum Développement
    Réponses: 3
    Dernier message: 21/01/2003, 01h42

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