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 :

gethostbyname de plusieur domaines récuperer depuis fichier text


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2009
    Messages : 447
    Points : 241
    Points
    241
    Par défaut gethostbyname de plusieur domaines récuperer depuis fichier text
    Bonjour à tous ,


    j'ai un probléme , j'ai un fichier contenant plusieurs domaines ( par exemple 3 domaines) , je récupere le contenu du fichier txt avec file, puis je fais un boucle pour afficher le domaine à coté de son ip ( récuperer avec la methode gethostbyname). le probléme c'est que ça marche seulement avec la dernieres lignes. les premiere lignes gethostbyname donne le meme domaine qui est en parametre et non l'adresse ip du domaine.

    le fichier text resemble à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    google.com
    hotmail.com
    php.net

    mon code php :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    $lignes = file($chemin_fichier_domaine);
     
     
    foreach($lignes as $num => $ligne)
    	 {
     
    $hosts=gethostbynamel($lignes[$num]);
    $host=gethostbyname($lignes[$num]);
     
                                   echo "<td>";
     
    					if (is_array($hosts)) 
    						{
    							echo "<ul>";
    							foreach ($hosts as $ip) 
    								{
    									echo "<li>".$ip."</li>";
    								}
    							echo "</ul>";	
    						}
    						else
    						{
    							echo "<ul><li>".$host."</li></ul>";
    						}						
    				echo "</td>";
       }

    je reçois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ----------------------------------
         domaine     |	ip	
     ---------------------------------
      google.com    |	google.com
     
      hotmail.com   |	hotmail.com
     
       php.net	      |   208.43.231.9


    ce que je veux recevoir si c'est possible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ----------------------------------
         domaine     |	ip	
     ---------------------------------
      google.com    |	adresse ip du google.com
     
      hotmail.com   |	adresse ip du hotmail.com
     
       php.net	      |       208.43.231.9

    le probléme est que il passe directement au dernier ligne. je sais pas pourquoi !

    Merci d'avoir me donner des idées
    Merci

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Il me semble que vous compliquer la vie, ceci rend votre résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $lignes = file($chemin_fichier_domaine);
    foreach ($lignes as $domaine){
     
        echo $domaine." | ".gethostbyname($domaine);
    }

  3. #3
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2009
    Messages : 447
    Points : 241
    Points
    241
    Par défaut
    oui je suis d'accord avec toi. mais ça marche pas toujours il affiche seulement le gethostbyname du dernier domaine situant dans le fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ----------------------------------
         domaine     |	ip	
     ---------------------------------
      google.com    |	google.com
     
      hotmail.com   |	hotmail.com
     
       php.net	      |   208.43.231.9
    ou est le gethostbyname du google.com ?

    ou est le gethostbyname du hotmail.com ?


    comme si gethostbyname renvoie la valeur du dernier domaines !!

  4. #4
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Salut,
    Parce que les sauts de ligne sont pris en compte (faites un var_dump de $lignes vous verrez que ce n'est pas vraiment "google.com")

    $lignes = file($chemin_fichier_domaine, FILE_IGNORE_NEW_LINES); , FILE_IGNORE_NEW_LINES comme son nom l'indique va faire en sorte que les retours à ligne soient ignorés.

  5. #5
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2009
    Messages : 447
    Points : 241
    Points
    241
    Par défaut
    ouii effectivement

    merci pour la réponse.

    aprés des tests j'ai trouvé qu'il y a un caractére vide à la fin. j'ai utilisé la fonction trim et j'ai résolu le probléme.


    FILE_IGNORE_NEW_LINES ca marche aussi


    Merci

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

Discussions similaires

  1. [WD-2003] Publipostage depuis fichier texte
    Par olibara dans le forum Word
    Réponses: 22
    Dernier message: 09/07/2010, 13h08
  2. Réponses: 2
    Dernier message: 23/12/2009, 10h03
  3. Extraire plusieurs ligne d'un fichier texte
    Par stpaul04 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 27/08/2009, 18h41
  4. Ecrire plusieurs lignes dans un fichier texte
    Par kinon dans le forum ASP.NET
    Réponses: 5
    Dernier message: 05/02/2009, 15h07
  5. Sauvegarde de plusieurs données dans un fichier texte
    Par Christinita dans le forum MATLAB
    Réponses: 9
    Dernier message: 23/11/2008, 09h37

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