Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       inet_aton,  inet_addr,  inet_network,  inet_ntoa,  inet_makeaddr, inet_lnaof, inet_netof -
       Routines de manipulation d'adresses Internet

SYNOPSIS

       #include <sys/socket.h>
       #include <netinet/in.h>
       #include <arpa/inet.h>

       int inet_aton(const char *cp, struct in_addr *inp);

       in_addr_t inet_addr(const char *cp);

       in_addr_t inet_network(const char *cp);

       char *inet_ntoa(struct in_addr in);

       struct in_addr inet_makeaddr(int net, int host);

       in_addr_t inet_lnaof(struct in_addr in);

       in_addr_t inet_netof(struct in_addr in);

   Exigences   de   macros   de   test   de   fonctionnalités   pour    la    glibc    (consultez
   feature_test_macros(7)) :

       inet_aton(), inet_ntoa() : _BSD_SOURCE || _SVID_SOURCE

DESCRIPTION

       inet_aton() convertit l'adresse Internet de l'hôte cp depuis la notation IPv4 avec nombres
       et points vers une forme binaire (dans l'ordre d'octet du réseau), et la  stocke  dans  la
       structure  pointée  par  inp.  inet_aton()  renvoie  une valeur non nulle si l'adresse est
       valable, et zéro sinon. L'adresse fournie à cp peut avoir l'une des formes suivantes :

       a.b.c.d   Chacune des quatre parties numériques représente un  octet  de  l'adresse ;  ces
                 octets sont assignés de gauche à droite pour produire l'adresse binaire.

       a.b.c     Les  parties  a et b représentent les deux premiers octets de l'adresse binaire.
                 La partie c est interprétée comme une valeur 16 bits définissant les deux octets
                 les  plus  à  droite  de  l'adresse  binaire. Cette notation est pertinente pour
                 indiquer (démodé) des adresses de réseaux de classe B.

       a.b       La partie a représente le premier octet de l'adresse binaire. La  partie  b  est
                 interprétée  comme  une  valeur  24 bits définissant les trois octets les plus à
                 droite de  l'adresse  binaire.  Cette  notation  est  pertinente  pour  indiquer
                 (démodé) des adresses de réseaux de classe A.

       a         La  valeur  a  est  interprétée comme une valeur 32 bits directement enregistrée
                 dans l'adresse binaire, sans aucun réajustement d'octet.

       Dans toutes les formes précédentes, les éléments d'une adresse en notation pointée peuvent
       être  indiqués  sous forme décimale, octale (avec un 0 devant) ou hexadécimale (avec un 0X
       devant). La terminologie des adresses sous  ces  formes  est  appelée  notation  numérique
       pointée IPv4. La forme qui utilise exactement quatre nombres décimaux est appelée notation
       décimale pointée IPV4 (ou quelques fois : notation quadruplée pointée IPv4).

       inet_aton() renvoie 1 si la chaîne fournie a été  interprétée  correctement  ou  0  si  la
       chaîne n’est pas valable (errno n’est pas défini en cas d’erreur).

       La  fonction inet_addr() convertit l'adresse Internet de l'hôte cp depuis la notation IPv4
       avec nombres et points en une donnée  binaire  dans  l'ordre  des  octets  du  réseau.  Si
       l'adresse  est  incorrecte,  INADDR_NONE  (généralement  -1) est renvoyé. L'utilisation de
       cette fonction pose problème car -1 est une adresse valable  (255.255.255.255).  Évitez-la
       au  profit  de  inet_aton(),  inet_pton(3)  ou  getaddrinfo(3)  qui  fournissent un renvoi
       d'erreur plus propre.

       La fonction inet_network() convertit cp, une chaîne en notation numérique pointée IPv4, en
       un  nombre  dans  l'ordre  des  octets  de l'hôte qui pourra être utilisé comme adresse de
       réseau Internet. Si elle réussit, cette fonction renvoie l'adresse convertie. Si l'adresse
       n'est pas valable, -1 est renvoyé.

       La  fonction inet_ntoa() convertit l'adresse Internet de l'hôte in donnée dans l'ordre des
       octets du réseau en une chaîne de caractères dans la notation numérique pointée. La chaîne
       est renvoyée dans un tampon alloué statiquement, qui est donc écrasé à chaque appel.

       La fonction inet_lnaof() renvoie la partie correspondant à l'adresse du réseau local d'une
       adresse Internet in. La valeur est renvoyée dans l'ordre des octets de l'hôte.

       La fonction inet_netof() renvoie la partie adresse réseau extraite d'une adresse  Internet
       in. La valeur est renvoyée dans l'ordre des octets de l'hôte.

       La  fonction inet_makeaddr() est la réciproque des fonctions inet_netof() et inet_lnaof().
       Elle renvoie une adresse d'hôte Internet dans l'ordre des octets du réseau,  en  combinant
       le  numéro  du  réseau net et l'adresse locale host, chacun d'eux étant donné dans l'ordre
       des octets de l'hôte.

       La  structure  in_addr  utilisée  dans  inet_ntoa(),  inet_makeaddr(),   inet_lnaof()   et
       inet_netof() est définie ainsi dans <netinet/in.h> :

           typedef uint32_t in_addr_t;

           struct in_addr {
               in_addr_t s_addr;
           };

CONFORMITÉ

       BSD 4.3.  inet_addr()  et inet_ntoa() sont spécifiées dans POSIX.1-2001. inet_aton() n'est
       pas spécifiée dans POSIX.1-2001, mais est disponible sur la plupart des systèmes.

NOTES

       L'ordre des octets des machines i386  est  « LSB »  (poids  faible  en  premier,  « little
       endian »), alors que l'ordre des octets sur internet est « MSB » (poids fort en premier ou
       « big endian »).

       inet_lnaof(), inet_netof() et inet_makeaddr() sont des fonctions  héritées  qui  supposent
       qu'elles  traitent  des  adresses  de  classes  canoniques.  Les  sous-réseaux  de classes
       canoniques divisent la partie réseau et la partie hôte des adresses IPv4 sur  des  limites
       d'octets comme suit :

       Classe A  Ce type d'adresse est indiqué par la valeur 0 du bit de poids fort (dans l'ordre
                 des octets du réseau) de  l'adresse.  L'adresse  du  réseau  est  contenue  dans
                 l'octet de poids fort et l'adresse de l'hôte dans les trois octets restants.

       Classe B  Ce  type  d'adresse  est  indiqué par la valeur binaire 10 dans les deux bits de
                 poids fort de l'adresse. L'adresse du réseau est contenue dans les  deux  octets
                 de poids fort et l'adresse de l'hôte dans les deux octets restants.

       Classe C  Ce  type  d'adresse est indiqué par la valeur binaire 110 dans les trois bits de
                 poids fort de l'adresse. L'adresse du réseau est contenue dans les trois  octets
                 de poids fort et l'adresse de l'hôte dans l'octet restant.

       La  classification  des  adresses  réseaux  est  aujourd'hui  obsolète,  supplantée par le
       « Classless Inter-Domain Routing (CIDR) », qui scinde les adresses en éléments  réseau  et
       hôte sur une frontière arbitraire en bit (plutôt qu'en octet).

EXEMPLE

       Ci-dessous,  un  exemple  de  l'utilisation  de  inet_aton()  et de inet_ntoa(). Voici des
       exemples d'exécution :

           $ ./a.out 226.000.000.037      # Last byte is in octal
           226.0.0.31
           $ ./a.out 0x7f.1               # First byte is in hex
           127.0.0.1

   Source du programme

       #define _BSD_SOURCE
       #include <arpa/inet.h>
       #include <stdio.h>
       #include <stdlib.h>

       int
       main(int argc, char *argv[])
       {
           struct in_addr addr;

           if (argc != 2) {
               fprintf(stderr, "%s <dotted-address>\n", argv[0]);
               exit(EXIT_FAILURE);
           }

           if (inet_aton(argv[1], &addr) == 0) {
               fprintf(stderr, "Adresse incorrecte\n");
               exit(EXIT_FAILURE);
           }

           printf("%s\n", inet_ntoa(addr));
           exit(EXIT_SUCCESS);
       }

VOIR AUSSI

       byteorder(3),    getaddrinfo(3),    gethostbyname(3),    getnameinfo(3),     getnetent(3),
       inet_net_pton(3), inet_ntop(3), inet_pton(3), hosts(5), networks(5)

COLOPHON

       Cette  page  fait partie de la publication 3.65 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

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

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

       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> ».