Man page - inet_pton(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

inet_pton

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ATTRIBUTS
VERSIONS
STANDARDS
HISTORIQUE
BOGUES
EXEMPLES
Source du programme
VOIR AUSSI
TRADUCTION

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

Image grohtml-3892718-1.png

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 .