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

Langage PHP Discussion :

GetNextIP : Parsing et gestion d'IP


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 41
    Points : 26
    Points
    26
    Par défaut GetNextIP : Parsing et gestion d'IP
    Bonjour, je débute en PHP et je souhaite développer un script qui parse une page, en extrait toutes les adresses IP trouvées et dresse une liste des adresses IP manquantes.

    Bien entendu il s'agit des adresses manquantes dans la plage d'IP trouvées dans la page parsée.
    J'entends par là que la première IP de cette plage sera la plus petite IP trouvée dans cette page et la dernière la plus grande.

    Pour ce faire, j'utilise preg_match_all() avec une regex (#([0-9]{1,3}\.){3}[0-9]{1,3}#) afin d'obtenir toutes les ip.

    Par chance, les IP sont déjà par ordre croissant.
    Ma première question est donc la suivante:
    Existe t-il une fonction du type getNextIP($string) qui retourne la prochaine IP de l'IP passée en paramètre ?

    Ensuite j'aurais aimé savoir s'il existait également un moyen simple (encore une fonction par exemple) de supprimer les doublons trouvés en utilisant preg_match_all() sachant que mes résultats sont dans le sous-tableau $matches[0][$i++].

    Et pour finir, dans un souci de certitude et de portabilité, est-il possible de trier simplement ces adresses IP par ordre croissant ? Afin d'être en mesure d'utiliser cette fonction getNextIP()

    Tout ça dans le but d'obtenir une fonction getMissingIPs($strings[]).

    Merci pour votre temps.
    Cordialement,
    Toiine

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 244
    Points
    20 244
    Par défaut
    Utilise ip2long et long2ip pour manipuler tes IP.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function getNextIP($ip)
    {
       return long2ip(ip2long($ip)+1);
    }
    Pour les doublons suffit d'utiliser array_unique et pour le tri un simple sort fera l'affaire si tu as utiliser ip2long

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Merci, ça peut en effet déjà bien simplifier les choses.

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

Discussions similaires

  1. Gestion des erreurs de parsing avec PLY
    Par dimele dans le forum Général Python
    Réponses: 6
    Dernier message: 29/07/2014, 11h01
  2. Exemple de gestion d'erreurs lors d'un parsing SAX
    Par Ioan dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 08/03/2011, 19h48
  3. Parsing XML gestion DB I/O sur des données de type CLOB
    Par stchitembo dans le forum Oracle
    Réponses: 5
    Dernier message: 22/03/2006, 12h14
  4. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 15h11
  5. gestion d'un joystick ...
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 23/05/2002, 13h53

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