Provided by: manpages-fr-dev_4.27.0-1_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 │
       └───────────────────────────────────────────────────────────────┴──────────────────────┴────────────────┘

VERSIONS

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

STANDARDS

       POSIX.1-2008.

HISTORIQUE

       POSIX.1-2001.

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, "Utilisation : %s chaîne {i4|i6|<num>}\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, "Pas en format de présentation");
               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>,    David     Prévot
       <david@tilapin.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 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.

Pages du manuel de Linux 6.9.1                    15 juin 2024                                      inet_pton(3)