getnameinfo | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
NOM | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
SYNOPSIS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
#include <sys/socket.h> #include <netdb.h> int getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags);
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
L'appelant peut préciser qu'aucun nom d'hôte (ou qu'aucun nom de service) n'est nécessaire en fournissant NULL comme paramètre host (ou serv) ou bien en passant un argument hostlen (ou servlen) valant zéro. Quoi qu'il en soit, au moins un nom d'hôte ou un nom de service doit être demandé.
Le paramètre flags modifie le comportement de getnameinfo() comme indiqué ci-dessous :
Extensions de getnameinfo() pour les noms de domaines internationalisés | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
À partir de la glibc 2.3.4, getnameinfo() a été étendue pour sélectivement permettre que les noms d'hôtes entrant et sortant soient convertis de manière transparente vers ou depuis le format des noms de domaines internationalisés (« Internationalized Domain Name », IDN). (Voir la RFC 3490, Internationalizing Domain Names in Applications (IDNA)). Trois nouveaux attributs ont été définis :
VALEUR RENVOYÉE | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
ERREURS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
La fonction gai_strerror(3) traduit ces codes d'erreurs en une chaîne intelligible, pratique pour soummettre les erreurs.
FICHIERS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
CONFORMITÉ | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
NOTES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
#define NI_MAXHOST 1025 #define NI_MAXSERV 32
La première est la constante MAXDNAME présente dans les versions récentes du fichier header <arpa/nameser.h> de BIND. La deuxième est déterminée en se basant sur les services répertoriés dans la RFC "Assigned numbers" (Numéros affectés) actuelle.
EXEMPLE | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
struct sockaddr *sa; /* input */ char hbuf[NI_MAXHOST], sbuf[NI_MAXSERV]; if (getnameinfo(sa, sa->sa_len, hbuf, sizeof(hbuf), sbuf, sizeof(sbuf), NI_NUMERICHOST | NI_NUMERICSERV) == 0) printf("host=%s, serv=%s\n", hbuf, sbuf);
La version suivante vérifie si l'adresse de la socket peut se voir associer un nom.
struct sockaddr *sa; /* input */ char hbuf[NI_MAXHOST]; if (getnameinfo(sa, sa->sa_len, hbuf, sizeof(hbuf), NULL, 0, NI_NAMEREQD)) printf("could not resolve hostname"); else printf("host=%s\n", hbuf);
Un programme exemple utilisant getnameinfo() peut être trouvé dans getaddrinfo(3).
VOIR AUSSI | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
R. Gilligan, S. Thomson, J. Bound et W. Stevens, Basic Socket Interface Extensions for IPv6, RFC 2553, Mars 1999.
Tatsuya Jinmei et Atsushi Onoe, An Extension of Format for IPv6 Scoped Addresses, internet draft, travail en cours. ftp://ftp.ietf.org/internet-drafts/draft-ietf-ipngwg-scopedaddr-format-02.txt
Craig Metz, Protocol Independence Using the Sockets API, compte rendu du sujet freenix : conférence technique annuelle USENIX 2000, juin 2000. http://www.usenix.org/publications/library/proceedings/usenix2000/freenix/metzprotocol.html
TRADUCTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Ce document est une traduction réalisée par Stéphan Rafin <stephan DOT rafin AT laposte DOT net> le 8 mai 2002 et révisée le 8 janvier 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 getnameinfo ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Sommaire | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
Table des mots clés | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
EAI_AGAIN | ERREURS |
EAI_BADFLAGS | ERREURS |
EAI_FAIL | ERREURS |
EAI_FAMILY | ERREURS |
EAI_MEMORY | ERREURS |
EAI_NONAME | ERREURS |
EAI_OVERFLOW | ERREURS |
EAI_SYSTEM | ERREURS |
NI_DGRAM | DESCRIPTION |
NI_IDN | Extensions de getnameinfo() pour les noms de domaines internationalisés |
NI_IDN_ALLOW_UNASSIGNED, NI_IDN_USE_STD3_ASCII_RULES | Extensions de getnameinfo() pour les noms de domaines internationalisés |
NI_NAMEREQD | DESCRIPTION |
NI_NOFQDN | DESCRIPTION |
NI_NUMERICHOST | DESCRIPTION |
NI_NUMERICSERV | DESCRIPTION |