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 :

[Script] Scan de réseau


Sujet :

Python

  1. #21
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    pourquoi tu as utilisé les c1, c2 et c3 ET pourquoi les avoir multiplié comme tu l'as fait ?
    J'ai traité le cas général où les IP pouvaient être quelconques (ex: 192.2.56.124, 192.15.89.45, ...)

    Toi, tu ne considères que le tri selon le dernier nombre de l'adresse IP (ici: 15, 10, 1 et 11), et si ça te suffit, c'est ok!
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  2. #22
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    On pourrait aussi écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def cle(ip):
        return [int(c) for c in ip.split('.')]
    Vu que l'ordre lexicographique utilisé pour la comparaison de listes convient ici.

    PS: Merci à wiztricks pour sa réponse 10 posts plus hauts C'est bon à savoir.

  3. #23
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    Par défaut
    Salut,

    Citation Envoyé par BUENOO Voir le message
    Sa fonctionne parfaitement, donc pourquoi tu as utilisé les c1, c2 et c3 ET pourquoi les avoir multiplié comme tu l'as fait ?
    Pour une raison qui t'a déjà été donnée là:
    Citation Envoyé par pfeuh Voir le message
    trier '127.0.0.1' et '127.255.0.0' ne donnera pas forcément le même résultat que trier '127000000001' et '127255000000'.
    Je pense que tu négliges le côté algorithme pour trop te focaliser sur le résultat que tu attends, ce qui n'est jamais bon. Tu devrais peut-être écrire avant toute chose quelques tests unitaires.

    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
     
    def ip2cle(ip):
        c1, c2, c3, c4 = ip.split('.')
        return int(c4) + int(c3)*256 + int(c2)*256**2 + int(c1)*256**3
     
    def cle2ip(cle):
        values = [str(cle >> 24 & 255),  str(cle >> 16 & 255), str(cle >> 8 & 255), str(cle & 255)]
        return '.'.join(values)
     
    def getSortedIps(ips):
        cles = [ip2cle(ip) for ip in ips]
        cles.sort()
        ips = [cle2ip(cle) for cle in cles]
        return ips
     
    ips = ["192.9.202.15", "192.9.202.11", "192.9.202.8", "192.9.202.5", "191.9.202.15", "255.9.202.11", "192.7.0.8", "191.4.0.4"] 
    assert getSortedIps(ips) == ['191.4.0.4', '191.9.202.15', '192.7.0.8', '192.9.202.5', '192.9.202.8', '192.9.202.11', '192.9.202.15', '255.9.202.11']
    A+

    Pfeuh

  4. #24
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 46
    Points : 27
    Points
    27
    Par défaut
    Merci pour vos réponses.

    C'est qu'enfête, plus haut dans mon script je demandes une plage à scanner, par exemple 192.9.202.x, 192.168.30.x ainsi de suite ... C'est pourquoi je n'es besoin de faire le tri final que sur le dernier nombre de l'ip ,)

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Batch script de mappage réseau
    Par user2010 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 27/04/2010, 17h03
  2. Script de configuration réseau Debian
    Par leoph dans le forum Réseau
    Réponses: 4
    Dernier message: 13/08/2009, 14h52
  3. envoi script sur un réseau
    Par shyx21 dans le forum Développement
    Réponses: 1
    Dernier message: 20/05/2008, 17h39
  4. [XP Pro] Script modification paramètres réseau
    Par lidouka dans le forum Administration
    Réponses: 4
    Dernier message: 10/03/2007, 22h03

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