Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       gethostbyname,   gethostbyaddr,   sethostent,  gethostent,  endhostent,
       h_errno,   herror,    hstrerror,    gethostbyaddr_r,    gethostbyname2,
       gethostbyname2_r,   gethostbyname_r,   gethostent_r   -   Obtenir   des
       informations concernant le reseau

SYNOPSIS

       #include <netdb.h>
       extern int h_errno;

       struct hostent *gethostbyname(const char *name);

       #include <sys/socket.h>       /* pour AF_INET */
       struct hostent *gethostbyaddr(const void *addr,
                                     socklen_t len, int type);

       void sethostent(int stayopen);

       void endhostent(void);

       void herror(const char *s);

       const char *hstrerror(int err);

       /* Extension System V/POSIX */
       struct hostent *gethostent(void);

       /* Extensions GNU */
       struct hostent *gethostbyname2(const char *name, int af);

       int gethostent_r(
               struct hostent *ret, char *buf, size_t buflen,
               struct hostent **result, int *h_errnop);

       int gethostbyaddr_r(const void *addr, socklen_t len, int type,
               struct hostent *ret, char *buf, size_t buflen,
               struct hostent **result, int *h_errnop);

       int gethostbyname_r(const char *name,
               struct hostent *ret, char *buf, size_t buflen,
               struct hostent **result, int *h_errnop);

       int gethostbyname2_r(const char *name, int af,
               struct hostent *ret, char *buf, size_t buflen,
               struct hostent **result, int *h_errnop);

   Exigences de macros de test de fonctionnalites  pour  la  glibc  (consultez
   feature_test_macros(7)) :

       gethostbyname2(), gethostent_r(), gethostbyaddr_r(), gethostbyname_r(),
       gethostbyname2_r() :
           _BSD_SOURCE || _SVID_SOURCE

       herror(), hstrerror() :
           (depuis la glibc 2.8) : _BSD_SOURCE || _SVID_SOURCE || _GNU_SOURCE

DESCRIPTION

       gethostbyname*()   et   gethostbyaddr*()   sont   deconseillees.    Les
       applications  devraient  utiliser getaddrinfo(3) et getnameinfo(3) a la
       place.

       La fonction gethostbyname() renvoie une structure de type hostent  pour
       l'hote  name.  La  chaine name est soit un nom d'hote, soit une adresse
       IPv4 en notation pointee standard (comme pour inet_addr(3)),  soit  une
       adresse  IPv6  avec  la notation points-virgules et points (Cf RFC 1884
       pour la description des adresses IPv6). Si name est une adresse IPv4 ou
       IPv6, aucune recherche supplementaire n'a lieu et gethostbyname() copie
       simplement la chaine name dans le champ h_name et le  champ  equivalent
       struct  in_addr  dans  le  champ h_addr_list[0] de la structure hostent
       renvoyee. Si name ne se termine pas par un point,  et  si  la  variable
       d'environnement  HOSTALIASES  est configuree, le fichier d'alias pointe
       par HOSTALIASES sera d'abord parcouru a la recherche de name (consultez
       hostname(7)  pour  le  format  du  fichier).  Le domaine courant et ses
       parents sont parcourus si name ne se termine pas par un point.

       La fonction gethostbyaddr() renvoie une structure du type hostent  pour
       l'hote  d'adresse  addr.  Cette  adresse est de longueur len et du type
       type. Les types d'adresse valides sont AF_INET et AF_INET6.  L'argument
       adresse  de l'hote est un pointeur vers une structure de type dependant
       du type de l'adresse, par exemple struct in_addr * (probablement obtenu
       via un appel a inet_addr(3)) pour une adresse de type AF_INET.

       La fonction sethostent() indique, si stayopen est vrai (vaut 1), qu'une
       socket TCP connectee doit etre utilisee pour interroger le  serveur  de
       noms  et  que  la  connexion  doit  rester  ouverte durant les demandes
       successives. Sinon l'interrogation utilisera des datagrammes UDP.

       La fonction endhostent() ferme la socket TCP  connectee  utilisee  pour
       interroger le serveur de noms.

       La  fonction  (obsolete)  herror()  affiche le message d'erreur associe
       avec la valeur courante de h_errno sur la sortie standard stderr.

       La  fonction  (obsolete)  hstrerror()  recoit  un  numero  d'erreur  en
       argument   (typiquement  h_errno)  et  renvoie  la  chaine  de  message
       d'erreur.

       Les interrogations du serveur de noms effectuees par gethostbyname() et
       gethostbyaddr()  utilisent  les  elements suivants : le serveur de noms
       named(8), les lignes de /etc/hosts, et l'annuaire  Network  Information
       Service  (NIS  ou  YP), suivant le contenu de la ligne order du fichier
       /etc/host.conf. L'action par defaut  consiste  a  interroger  named(8),
       puis /etc/hosts.

       La structure hostent est definie ainsi dans <netdb.h> :

           struct hostent {
               char  *h_name;            /* Nom officiel de l'hote */
               char **h_aliases;         /* Liste d'alias */
               int    h_addrtype;        /* Type d'adresse de l'hote */
               int    h_length;          /* Longueur de l'adresse */
               char **h_addr_list;       /* Liste d'adresses */
           }
           #define h_addr h_addr_list[0] /* for backward compatibility */

       Les membres de la structure hostent sont :

       h_name Nom officiel de l'hote.

       h_aliases
              Un  tableau, termine par un pointeur NULL, d'alternatives au nom
              officiel de l'hote.

       h_addrtype
              Le type d'adresse : actuellement toujours AF_INET ou AF_INET6.

       h_length
              La longueur, en octets, de l'adresse.

       h_addr_list
              Un tableau, termine par un pointeur NULL, d'adresses reseau pour
              l'hote, avec l'ordre des octets du reseau.

       h_addr La   premiere   adresse   dans  h_addr_list  pour  respecter  la
              compatibilite ascendante.

VALEUR RENVOY'EE

       Les fonctions gethostbyname() et gethostbyaddr() renvoient un  pointeur
       vers  la  structure  hostent,  ou  un  pointeur  NULL  si une erreur se
       produit, auquel cas h_errno  contient  le  code  d'erreur.  Lorsqu'elle
       n'est  pas  NULL,  la  valeur  de  retour  peut  pointer sur une donnee
       statique. Consultez les notes plus loin.

ERREURS

       La variable h_errno peut prendre les valeurs suivantes :

       HOST_NOT_FOUND
              L'hote indique est inconnu.

       NO_ADDRESS ou NO_DATA
              Le nom est valide mais ne possede pas d'adresse IP.

       NO_RECOVERY
              Une erreur fatale du serveur de noms est apparue.

       TRY_AGAIN
              Une erreur temporaire du serveur de noms est apparue, essayez un
              peu plus tard.

FICHIERS

       /etc/host.conf
              Fichier de configuration de la resolution de noms.

       /etc/hosts
              Base de donnees des hotes.

       /etc/nsswitch.conf
              Configuration du service de noms.

CONFORMIT'E

       POSIX.1-2001  specifie  gethostbyname(), gethostbyaddr(), sethostent(),
       endhostent(),     gethostent()     et     h_errno.     gethostbyname(),
       gethostbyaddr(),  et  h_errno sont marquees obsoletes dans ce standard.
       POSIX.1-2008   supprime   les   specifications   de    gethostbyname(),
       gethostbyaddr()  et  h_errno  et recommande a la place l'utilisation de
       getaddrinfo(3) et getnameinfo(3).

NOTES

       Les fonctions gethostbyname() et gethostbyaddr() peuvent  renvoyer  des
       pointeurs  sur  des donnees statiques susceptibles d'etre ecrasees d'un
       appel a l'autre. Copier la structure struct hostent ne suffit  pas  car
       elle  contient  elle-meme  des  pointeurs.  Une copie en profondeur est
       indispensable.

       Dans l'implementation BSD originale, l'argument len de  gethostbyname()
       etait  un int. Les specifications SUS-v2 sont defectueuses et declarent
       le parametre len de gethostbyaddr() comme etant de  type  size_t  (ceci
       est errone car il doit obligatoirement etre un int, ce que size_t n'est
       pas toujours. POSIX.1-2001 le declare socklen_t, ce qui  est  correct).
       Consultez egalement accept(2).

       Le  prototype  BSD  pour  gethostbyaddr()  utilise  const  char * comme
       premier argument.

   Extension System V/POSIX
       POSIX reclame l'appel gethostent(), qui devrait renvoyer  la  prochaine
       entree  de  la  base  de donnees des hotes. Avec DNS/BIND, cela n'a pas
       plus de sens, mais cela peut etre raisonnable si la base de donnees des
       hotes  est un fichier qui peut etre lu ligne par ligne. Sur beaucoup de
       systemes, une routine de ce nom lit le  fichier  /etc/hosts.  Elle  est
       disponible  que  lorsque la bibliotheque est construite sans la gestion
       DNS. L'equivalent de la glibc ignore les entrees IPv6.  Cette  fonction
       n'est  pas  reentrante,  mais  la glibc propose une version reentrante,
       gethostent_r().

   Extensions GNU
       La glibc2 propose aussi une fonction gethostbyname2()  qui  agit  comme
       gethostbyname(), qui permet de preciser la famille a laquelle l'adresse
       doit appartenir.

       La  glibc2  propose  aussi  les  versions  reentrantes  gethostent_r(),
       gethostbyaddr_r(),  gethostbyname_r() et gethostbyname2_r(). L'appelant
       fournit une structure hostent via ret qui sera remplie en cas de succes
       et un tampon de travail temporaire buf de taille buflen. Apres l'appel,
       result pointera vers le resultat en cas de succes. En cas  d'erreur  ou
       si  aucune  entree  n'a  ete  trouvee, result vaudra NULL Les fonctions
       renvoient 0 en cas de succes et une valeur non nulle en  cas  d'erreur.
       En plus des erreurs renvoyees par ces fonctions reentrantes, si buf est
       trop petit, les  fonctions  renvoient  ERANGE  et  l'appel  devra  etre
       effectue  par  la  suite avec un tampon plus grand. La variable h_errno
       n'est pas modifiee, mais l'adresse d'une variable ou est stocke le code
       d'erreur est transmise dans h_errnop.

BOGUES

       gethostbyname()  ne  reconnait  pas  les elements d'une adresse IPv4 en
       notation pointee si ces elements sont exprimes en hexadecimal.

VOIR AUSSI

       getaddrinfo(3), getnameinfo(3),  inet(3),  inet_ntop(3),  inet_pton(3),
       resolver(3), hosts(5), nsswitch.conf(5), hostname(7), named(8)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.27 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue a l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone       au       sein        du        projet        perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/> (1996-2003),
       Alain Portal <URL:http://manpagesfr.free.fr/>  (2003-2006).   Florentin
       Duneau et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez   signaler   toute   erreur   de   traduction  en  ecrivant  a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

                                3 decembre 2009               GETHOSTBYNAME(3)