Provided by: manpages-fr-dev_4.19.0-7_all bug

NOM

       inet_pton - Convertir des adresses IPv4 et IPv6 sous forme texte en forme binaire

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <arpa/inet.h>

       int inet_pton(int af, const char *restrict src, void *restrict dst);

DESCRIPTION

       Cette  fonction convertit la chaîne de caractères src en une structure d'adresse réseau de
       la famille af, puis copie cette structure dans dst. L'argument af doit être  soit  AF_INET
       soit AF_INET6. dst est écrit dans l'ordre d'octets du réseau.

       Les familles d'adresses suivantes sont dès à présent supportées :

       AF_INET
              src  pointe sur une chaîne de caractère contenant une adresse réseau IPv4 au format
              décimal pointé ddd.ddd.ddd.ddd, où ddd est un  nombre  décimal,  contenant  jusqu'à
              trois  chiffres,  dans  l'intervalle  0 à 255. L'adresse est alors convertie en une
              structure struct in_addr et copiée dans dst, qui  doit  donc  contenir  au  minimum
              sizeof(struct in_addr) (4) octets (32 bits).

       AF_INET6
              src  pointe  sur  une  chaîne  de  caractères  contenant  une  adresse réseau IPv6.
              L'adresse est convertie en une structure struct in6_addr et copiée  dans  dst,  qui
              doit  donc  contenir  au  moins sizeof(struct in6_addr) (16) octets (128 bits). Les
              formats d'adresse IPv6 autorisés suivent les règles suivantes :

              •  Le format préféré  est  x:x:x:x:x:x:x:x.  Cette  forme  consiste  en  8  nombres
                 hexadécimaux,  chacun d'entre eux exprimant une valeur sur 16 bits (c'est-à-dire
                 que chaque x peut contenir jusqu'à 4 symboles hexadécimaux).

              •  Une série de zéros contigus dans la forme préférée peut être abrégée en ::.  Une
                 seule instance de :: peut apparaître dans une adresse. Par exemple, l'adresse de
                 boucle 0:0:0:0:0:0:0:1 peut être abrégée en  ::1.  L'adresse  joker,  constituée
                 uniquement de zéros, peut être écrite comme ::.

              •  Un  autre  format  utile pour exprimer des adresses IPv4 projetées dans l'espace
                 IPv6  est  x:x:x:x:x:x:d.d.d.d,  où  les  six  x  de  tête  sont   des   valeurs
                 hexadécimales  qui  définissent  les  6  mots 16 bits de poids fort de l'adresse
                 (c'est-à-dire 96 bits), et les d  expriment  une  valeur  en  notation  décimale
                 pointée  définissant  les 32 bits de poids faible de l'adresse. Un exemple d'une
                 telle adresse est ::FFFF:204.152.189.116.

              Consultez la RFC 2373 pour plus de détails sur la représentation des adresses IPv6.

VALEUR RENVOYÉE

       inet_pton() renvoie 1 si elle réussit (l'adresse réseau a été convertie avec succès). Elle
       renvoie une valeur nulle si src ne contient pas une adresse réseau valable pour la famille
       indiquée. Si af ne contient pas de famille d'adresse valable,  -1  est  renvoyé  et  errno
       contient EAFNOSUPPORT.

ATTRIBUTS

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

       ┌─────────────────────────────────────────────────┬──────────────────────┬────────────────┐
       │InterfaceAttributValeur         │
       ├─────────────────────────────────────────────────┼──────────────────────┼────────────────┤
       │inet_pton().                                     │ Sécurité des threads │ MT-Safe locale │
       └─────────────────────────────────────────────────┴──────────────────────┴────────────────┘

STANDARDS

       POSIX.1-2001, POSIX.1-2008.

NOTES

       Contrairement  à  inet_aton(3)  et  inet_addr(3), inet_pton() gère les adresses IPv6. D'un
       autre coté, inet_pton() n'accepte que les adresses IPv4 en notation décimale pointée alors
       que  inet_aton(3)  et  inet_addr(3) autorisent la notation plus générale numérique pointée
       (formats à nombre hexadécimaux et octaux, de même que les formats n'exigeant pas que les 4
       octets  soient  explicitement écrits). Pour une interface gérant les adresses IPv6 et IPv4
       en notation numérique pointée, consultez getaddrinfo(3).

BOGUES

       AF_INET6 ne reconnaît pas les adresses IPv4. Il faut dans ce  cas  fournir  dans  src  une
       adresse IPv4 projetée dans l'espace IPv6.

EXEMPLES

       Le programme suivant montre une utilisation de inet_pton() et inet_ntop(3). Voici quelques
       exemples d'exécution :

           $ ./a.out i6 0:0:0:0:0:0:0:0
           ::
           $ ./a.out i6 1:0:0:0:0:0:0:8
           1::8
           $ ./a.out i6 0:0:0:0:0:FFFF:204.152.189.116
           ::ffff:204.152.189.116

   Source du programme

       #include <arpa/inet.h>
       #include <stdio.h>
       #include <stdlib.h>
       #include <string.h>

       int
       main(int argc, char *argv[])
       {
           unsigned char buf[sizeof(struct in6_addr)];
           int domain, s;
           char str[INET6_ADDRSTRLEN];

           if (argc != 3) {
               fprintf(stderr, "Usage: %s {i4|i6|<num>} string\n", argv[0]);
               exit(EXIT_FAILURE);
           }

           domain = (strcmp(argv[1], "i4") == 0) ? AF_INET :
                    (strcmp(argv[1], "i6") == 0) ? AF_INET6 : atoi(argv[1]);

           s = inet_pton(domain, argv[2], buf);
           if (s <= 0) {
               if (s == 0)
                   fprintf(stderr, "Not in presentation format");
               else
                   perror("inet_pton");
               exit(EXIT_FAILURE);
           }

           if (inet_ntop(domain, buf, str, INET6_ADDRSTRLEN) == NULL) {
               perror("inet_ntop");
               exit(EXIT_FAILURE);
           }

           printf("%s\n", str);

           exit(EXIT_SUCCESS);
       }

VOIR AUSSI

       getaddrinfo(3), inet(3), inet_ntop(3)

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> et David Prévot <david@tilapin.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⟩.