Provided by: manpages-fr-dev_4.23.1-1_all bug

NOM

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

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

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

       [[deprecated]] char *inet_ntoa(struct in_addr in);

       [[obsolète]] struct in_addr inet_makeaddr(in_addr_t net,
                                                   in_addr_t host);

       [[obsolète]] in_addr_t inet_lnaof(struct in_addr in);
       [[obsolète]] in_addr_t inet_netof(struct in_addr in);

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

       inet_aton(), inet_ntoa() :
           Depuis la glibc 2.19 :
               _DEFAULT_SOURCE
           Dans les glibc antérieures et égale à 2.19 :
               _BSD_SOURCE || _BSD_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;
           };

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).

       ┌─────────────────────────────────────────────────┬──────────────────────┬────────────────┐
       │InterfaceAttributValeur         │
       ├─────────────────────────────────────────────────┼──────────────────────┼────────────────┤
       │inet_aton(), inet_addr(), inet_network(),        │ Sécurité des threads │ MT-Safe locale │
       │inet_ntoa()                                      │                      │                │
       ├─────────────────────────────────────────────────┼──────────────────────┼────────────────┤
       │inet_makeaddr(), inet_lnaof(), inet_netof()      │ Sécurité des threads │ MT-Safe        │
       └─────────────────────────────────────────────────┴──────────────────────┴────────────────┘

STANDARDS

       inet_addr()
       inet_ntoa()
              POSIX.1-2008.

       inet_aton()
              Aucune.

STANDARDS

       inet_addr()
       inet_ntoa()
              POSIX.1-2001, 4.3BSD.

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

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

EXEMPLES

       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 _DEFAULT_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 non valable\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)

TRADUCTION

       La  traduction  française  de  cette  page  de  manuel  a  été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>  et  Jean-Philippe  MENGUAL
       <jpmengual@debian.org>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General
       Public  License  version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   concernant   les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.