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 :

La function php gethostbyname() ne marche pas sur linux


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 204
    Points : 123
    Points
    123
    Par défaut La function php gethostbyname() ne marche pas sur linux
    Bonjour,

    il existe une fonction php appelée gethostbyname() qui permet de retourner l'ip d'un hote.

    Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
     
    echo gethostbyname("example.com");
     
    /*Affiche 192.0.43.10*/
     
    ?>
    Le problème est que gethostbyname ne semble pas marcher sur linux, car il me retourne l'hote que j'ai passé en paramètre (donc c'est un échec d'après la doc php) et non pas l'ip.

    Pourquoi ça ne marche pas ?

    Merci d'avance pour vos réponses.

    PS : je suis sur fedora.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 389
    Points : 23 712
    Points
    23 712
    Par défaut
    Hello,

    Ça n'a aucun rapport avec Linux. C'est dû au fait que le nom d'hôte que tu recherches n'existe pas. C'est écrit dans la page du manuel de PHP consacrée à gethostbyname() :

    Citation Envoyé par PHP gethostbyname
    Valeurs de retour :

    Retourne l'adresse IPv4, ou une chaîne contenant le nom d'hôte inchangé en cas d'échec.

    http://php.net/manual/fr/function.gethostbyname.php

  3. #3
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Bonjour.

    En effet, tu as du fournir un nom de host inexistant. Pour confirmer ce qu'à dit Obsidian :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    idriss@hp-dv6:~$ cat test2.php 
    #!/usr/bin/php
    <?php
    	echo gethostbyname ("machintrucmuch.com") . "\n";
    	echo gethostbyname ("google.fr") . "\n";
    ?>
    idriss@hp-dv6:~$ ./test2.php 
    machintrucmuch.com
    173.194.78.94
    idriss@hp-dv6:~$

    Sous Ubuntu (ce qui ne change strictement rien avec Fedora de ce point de vue là).

    Cordialement,
    Idriss

  4. #4
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 204
    Points : 123
    Points
    123
    Par défaut
    Ça n'a aucun rapport avec Linux.
    => si, parce que j'avais fait un test sur Windows où ça marche, mais pas sur linux

    C'est dû au fait que le nom d'hôte que tu recherches n'existe pas
    => non, j'ai mis "example.com", et ça a marché sur Windows

    Le problème est que sur linux, le code ne marche pas quand je l'exécute sur un navigateur (firefox, chrome...), par contre ça marche en ligne de commande. Bizarre .

    Une idée ?

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 389
    Points : 23 712
    Points
    23 712
    Par défaut
    Ça veut dire que le DNS vu par tes différentes machines n'est pas le même. Il doit également y avoir un fichier /host local à chacune d'entre elles qui contient des informations différentes.

    Il est possible également que la version de PHP utilisée par les différents serveurs soit différente.

    Enfin, en programmation système Unix (a priori en langage C), l'appel gethostbyname() est désormais déprécié au profit de getaddrinfo(), justement parce qu'un nom d'hôte DNS peut couvrir plusieurs adresses IP, qu'elles peuvent désormais être en IPv4 ou IPv6 et qu'il peut aussi s'agir d'un alias. Je ne sais pas comment le PHP réagit face à cela.

  6. #6
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 204
    Points : 123
    Points
    123
    Par défaut
    C'est bon c'est résolu.

    Sur fedora, il fallait lancer apache après l'activation du réseau pour que apache puisse faire des résolution dns.

    donc j'ai du faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    service httpd restart
    pour que mon code php marche.

    Merci à vous tous de m'avoir aidé .

    Résolu.

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

Discussions similaires

  1. fichier php ne marche pas sur wamp
    Par underlo dans le forum Langage
    Réponses: 2
    Dernier message: 28/02/2013, 10h58
  2. [VBA-E] mon code ne marche pas sur un autre PC
    Par yannph dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/01/2006, 21h03
  3. reload.js ne marche pas sur apache
    Par Leishmaniose dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 19/08/2005, 15h36
  4. Réponses: 3
    Dernier message: 08/09/2003, 15h06
  5. Réponses: 9
    Dernier message: 07/05/2003, 12h57

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