Provided by: manpages-fr-dev_4.21.0-2_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);

       struct in_addr inet_makeaddr(in_addr_t net, in_addr_t 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    (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-2001, POSIX.1-2008, 4.3BSD.

       inet_aton() n'est pas spécifiée dans POSIX.1, 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).

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

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