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 :

manipulation/comparaison d'adresse reseau


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 2
    Par défaut manipulation/comparaison d'adresse reseau
    Bonjour tout le monde,

    Voilà je dois écrire un script sur python qui me permette de comparer des adresses reseau entre elles du type:
    @1 = x1.x2.x3.x4. et @2 = y1.y2.y3.y4.
    A l'issu de cette comparaison, on choisira la plage la plus grande.

    Est ce que quelqu'un pourrait m'eclairer, je n'y arrive pas!!!

  2. #2
    Membre confirmé Avatar de zabibof
    Inscrit en
    Février 2007
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 188
    Par défaut
    Je connais que dalle en réseau (si si ), donc, je ne sais pas ce que tu veux dire par plage plus grande mais je pense que tu peux utiliser les expressions régulières pour résoudre ton problème.
    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    >>> import re
    >>> ip_address = '192.168.0.20'
    >>> regex = re.compile('(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})')
    >>> match_ip = regex.match(ip_address)
    >>> x1 = int(match_ip.groups()[0])
    >>> x2 = int(match_ip.groups()[1])
    >>> x3 = int(match_ip.groups()[2])
    >>> x4 = int(match_ip.groups()[3])
    De cette façon, tu peux extraire x1, x2, x3 et x4, donc les comparer à y1, y2, y3 et y4. J'espère que c'est ça que tu cherches.
    Enfin, j'espère que je ne me suis pas planté dans mon motif.

  3. #3
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    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 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Autre idée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ip1="192.168.0.20"
    ip2="192.168.0.50"
    i1,i2,i3,i4=map(int,ip1.split('.'))
    j1,j2,j3,j4=map(int,ip2.split('.'))
    Avec cela, on a directement i1=192, i2=168, etc...

    Tu peux ensuite comparer i1 avec j1, i2 avec j2, etc...

    Mais après, je n'ai pas bien compris ce que tu veux en faire.

    Tyrtamos

  4. #4
    Membre émérite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par défaut
    Au risque de passer pour un blaireau (moi non plus j'ai pas trop piger le but... m'enfin), pourquoi ne pas faire tou simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ip1="192.168.35.20"
    ip2="160.190.0.50"
     
    >>> final_ip= ip1 if ip1>=ip2 else ip2
    >>> final_ip
    '192.168.35.20'
    #ou
    >>> final_ip='.'join([int(x[0])>=int(x[1]) and x[0] or x[1] for x in zip(ip1.split('.'),ip2.split('.'))])
    >>> final_ip
    '192.190.35.50'

  5. #5
    Membre Expert
    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
    Par défaut
    Citation Envoyé par N.tox Voir le message
    Au risque de passer pour un blaireau [...]
    Bravo, c'est réussi
    Je ne dis pas ça par méchanceté, mais tu es allé chercher le bâton pour te faire battre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    >>> ip1="192.168.0.20"
    >>> ip2="80.11.200.1"
    >>> ip1 if ip1>=ip2 else ip2
    '80.11.200.1'  # hum
    >>> '.'.join([int(x[0])>=int(x[1]) and x[0] or x[1] for x in zip(ip1.split('.'),ip2.split('.'))])
    '192.168.200.20'  # bof
    Plus sérieusement, le PO n'est pas clair car il parle d'abord d'adresses puis d'une plage [d'adresses].

  6. #6
    Membre émérite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par défaut

Discussions similaires

  1. Alias, redirection adresse réseau + port
    Par pafpaf dans le forum Réseau
    Réponses: 10
    Dernier message: 23/11/2006, 06h48
  2. Réponses: 2
    Dernier message: 15/05/2006, 22h22
  3. Comparaison d'adresse en hexa.
    Par molo2003 dans le forum MFC
    Réponses: 6
    Dernier message: 08/04/2006, 09h38
  4. Quest ce qu'une adresse reseau publique ?
    Par WOLO Laurent dans le forum Développement
    Réponses: 3
    Dernier message: 09/08/2003, 12h35
  5. Adresse reseau mappée
    Par WOLO Laurent dans le forum Développement
    Réponses: 4
    Dernier message: 28/07/2003, 10h20

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