Loading

NOM

       getipnodebyname,  getipnodebyaddr,  freehostent  - Obtenir les adresses
       réseau et noms d’hôte

SYNOPSIS

       #include <sys/types.h>
       #include <sys/socket.h>
       #include <netdb.h>

       struct hostent *getipnodebyname(const char *name, int af,
                                       int flags, int *error_num);

       struct hostent *getipnodebyaddr(const void *addr, size_t len,
                                       int af, int *error_num);

       void freehostent(struct hostent *ip);

       Ces fonctions sont déconseillées (et ne sont pas  disponibles  dans  la
       glibc). Utilisez getaddrinfo(3) et getnameinfo(3) à la place.

       Les  fonctions  getipnodebyname() et getipnodebyaddr() renvoient le nom
       et l’adresse réseau d’un hôte. Ces fonctions renvoient un pointeur  sur
       une structure définie comme suit :

           struct  hostent {
               char  *h_name;
               char **h_aliases;
               int    h_addrtype;
               int    h_length;
               char **h_addr_list;
           };

       Ces    fonctions   remplacent   les   fonctions   gethostbyname(3)   et
       gethostbyaddr(3) qui ne pouvaient qu’accéder aux adresses réseau de  la
       famille  IPv4.  Les  fonctions  getipnodebyname()  et getipnodebyaddr()
       peuvent fonctionner avec diverses familles d’adresses réseau.

       Contrairement aux fonctions du type gethostby, ces  routines  renvoient
       des  pointeurs  sur  des  zones  de mémoires allouées dynamiquement. La
       fonction freehostent() sert  à  libérer  la  zone  de  mémoire  allouée
       dynamiquement  une  fois  que  l’on n’a plus besoin des informations se
       trouvant dans la structure hostent.

   Paramètres de getipnodebyname()
       La fonction getipnodebyname()  recherche  l’adresse  réseau  de  l’hôte
       indiqué dans son argument name. Le paramètre af prend l’une des valeurs
       suivantes :

       AF_INET
              Le paramètre name représente une adresse décimale pointée  IPv4,
              ou le nom d’un hôte sur un réseau IPv4.

       AF_INET6
              Le  paramètre  name représente une adresse hexadécimale IPv6, ou
              le nom d’un hôte sur un réseau IPv6.

       Le paramètre  flags  indique  des  options  supplémentaires.  Plusieurs
       options  peuvent  être  indiquées  en les regroupant par un OU binaire.
       flags doit être mis à 0 si aucune option n’est désirée.

       AI_V4MAPPED
              Cet  attribut  est  utilisé  avec  AF_INET6  pour  demander   de
              rechercher  une  adresse IPv4 plutôt qu’une IPv6. L’adresse IPv4
              devra toutefois être projetée dans l’espace IPv6.

       AI_ALL Cet attribut est utilisé  avec  AI_V4MAPPED  pour  demander  une
              recherche simultanée d’adresses IPv4 et IPv6. Toute adresse IPv4
              trouvée sera projetée dans l’espace IPv6.

       AI_ADDRCONFIG
              Cet attribut est utilisé avec AF_INET6  pour  indiquer  que  les
              requêtes  ultérieures  d’adresses IPv6 n’auront pas lieu à moins
              que le système n’ait au moins une adresse IPv6  affectée  à  une
              interface  réseau.  Symétriquement, les requêtes d’adresses IPv4
              n’auront lieu que si le système dispose au moins  d’une  adresse
              IPv4  affectée  à  une  interface réseau. Cet attribut peut être
              utilisé seul ou avec AI_V4MAPPED.

       AI_DEFAULT
              Cet attribut est équivalent à (AI_ADDRCONFIG | AI_V4MAPPED).

   Paramètres de getipnodebyaddr()
       La fonction getipnodebyaddr() recherche le nom d’un hôte dont l’adresse
       réseau  est  indiquée  par l’argument addr. Le paramètre af prend l’une
       des valeurs suivantes :

       AF_INET
              Le paramètre addr pointe vers une structure  struct  in_addr  et
              len doit valoir sizeof(struct in_addr).

       AF_INET6
              Le  paramètre  addr pointe vers une structure struct in6_addr et
              len doit valoir sizeof(struct in6_addr).

VALEUR RENVOYÉE

       En cas d’erreur, un pointeur NULL est renvoyé, et error_num  contiendra
       un code d’erreur parmi les suivants :

       HOST_NOT_FOUND
              Le nom d’hôte ou l’adresse réseau n’ont pas été trouvés.

       NO_ADDRESS
              Le  serveur  de  noms reconnaît l’adresse réseau ou le nom, mais
              n’a pas fourni de réponse. Ceci peut se produire si  l’hôte  n’a
              que  des  adresse  IPv4,  et  qu’on  a  demandé  uniquement  des
              informations IPv6, ou l’inverse.

       NO_RECOVERY
              Le serveur de noms a renvoyé une erreur définitive.

       TRY_AGAIN
              Le serveur de noms a renvoyé une  erreur  temporaire.  Réessayez
              plus tard.

       Une recherche couronnée de succès renvoie un pointeur sur une structure
       hostent contenant les champs suivants :

       h_name Nom officiel de l’hôte.

       h_aliases
              Table de pointeurs vers des alias non officiels du même hôte. La
              table est terminée par un pointeur NULL.

       h_addrtype
              Il  s’agit  d’une  copie du paramètre af de getipnodebyname() ou
              getipnodebyaddr().  h_addrtype  sera  toujours  AF_INET  si   le
              paramètre af était AF_INET. h_addrtype sera toujours AF_INET6 si
              le paramètre af était AF_INET6.

       h_length
              Ce champ sera défini à sizeof(struct in_addr) si h_addrtype  est
              AF_INET, et sizeof(struct in6_addr) si h_addrtype vaut AF_INET6.

       h_addr_list
              Il s’agit d’une table de pointeurs vers les structures d’adresse
              de l’hôte. La table est terminée par un pointeur NULL.

CONFORMITÉ

       RFC 2553

NOTES

       Ces  fonctions  étaient  présentes dans la glibc 2.1.91-95, mais en ont
       été retirées. Plusieurs systèmes de type Unix les supportent, mais tous
       les considèrent comme déconseillées.

VOIR AUSSI

       getaddrinfo(3), getnameinfo(3), inet_ntop(3), inet_pton(3)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.23 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       être       trouvées      à      l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Florentin Duneau <fduneau@gmail.com> et l’équipe
       francophone de traduction de Debian.

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

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».