Provided by: manpages-fr-dev_3.57d1p1-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 C.

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

       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_ntop(3), inet_pton(3), hosts(5), networks(5)

COLOPHON

       Cette page fait partie de la publication 3.57 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> ».