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

Algorithmes et structures de données Discussion :

Générer une liste d'adresse IPs à partir d'une plage d'adresse.


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 81
    Par défaut Générer une liste d'adresse IPs à partir d'une plage d'adresse.
    Bonjour,

    Je suis à la recherche d'un algorithme efficace pour générer une liste d'adresses IPs à partir d'une plage d'adresses.
    Par exemple, à partir de 172.16.186.0/23 générer les 2^(32-23) -2 adresses valides du sous réseau, donc lister les IP allant de 172.16.186.1 à 172.16.187.254.

    J'ai codé en C un algorithme assez lourd (avec plein de if imbriqués dans un while à multiples conditions), mais j'aimerais bien trouver une méthode optimale pour le faire, parce que ça me semble mieux.

    Si vous connaissez un algo sympa, merci à vous.

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par johnnyjohnny Voir le message
    Si vous connaissez un algo sympa, merci à vous.
    une boucle for() ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 81
    Par défaut
    Je viens de tester un truc, je suis pas sur que ça marche dans tous les cas (il faudrait que je vérifie), mais je crois qu'il est possible de faire ça assez simplement en convertissant l'adresse (au format inet_addr, donc un unsigned int) en host byte order puis en incrémentant la valeur.
    Au niveau code ça donne un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ip = ntohl(ip_min);
    ip_max = nothl(ip_max);
     
    while (ip < ip_max) {
       ip++;
    }
    Pour afficher la valeur dans le bon ordre on repasse par htonl(ip).

    Si quelqu'un pouvait me confirmer que c'est correct pour tous les cas ça serait sympa.

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par johnnyjohnny Voir le message
    Si quelqu'un pouvait me confirmer que c'est correct pour tous les cas ça serait sympa.
    Bah oui, ca doit marcher. Une adresse IP c'est juste une valeur sur 4 octets, donc il suffit d'une boucle for().
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. [AC-2010] Alimenter une liste déroulante de formulaire à partir d'une 2ème base
    Par metalleuse dans le forum VBA Access
    Réponses: 6
    Dernier message: 08/06/2015, 10h10
  2. Réponses: 1
    Dernier message: 28/01/2015, 15h05
  3. Réponses: 0
    Dernier message: 24/09/2014, 22h58
  4. Rechercher une valeur proche dans tableau à partir d'une liste
    Par bourgui78 dans le forum Général Python
    Réponses: 9
    Dernier message: 15/02/2013, 10h36
  5. Réponses: 1
    Dernier message: 09/01/2012, 16h47

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