GETNAMEINFO(3)

 .

NOM
getnameinfo - Traduction d'adresse en nom de façon indépendante du protocole

SYNOPSIS
#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
La fonction getnameinfo() est la reciproque de getaddrinfo(3) : elle convertit une adresse de socket en un hôte et un service correspondants, de façon indépendante du protocole. Elle combine les fonctionnalités de gethostbyaddr(3) et getservbyport(3) mais contrairement à ces fonctions, getaddrinfo(3) est réentrante et permet aux programmes de supprimer les dépendances IPv4/IPv6. Le paramètre sa est un pointeur vers l'adresse d'une structure de socket générique (de type sockaddr_in ou sockaddr_in6) de taille salen qui contient l'adresse IP d'entrée et le numéro de port. Les paramètres host et serv sont des pointeurs vers des tampons alloués par l'appelant (de tailles respectives hostlen et servlen dans lesquels getnameinfo() place des chaînes de caractères, terminées par l'octet nul, contenant respectivement les noms d'hôte et de service. 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 :

NI_NAMEREQD
    S'il est défini, une erreur se produira si le nom de l'hôte n'a pas pu être déterminé.

NI_DGRAM
    S'il est défini, le service est basé sur des datagrammes (UDP) plutôt que sur un flux (TCP). Cet attribut est nécessaire pour les quelques ports (512-514) qui ont des services différents selon le protocole utilisé : UDP ou TCP.

NI_NOFQDN
    renvoie seulement la partie nom de l'hôte du FQDN (Fully-Qualified Domain Name) pour les hôtes locaux.

NI_NUMERICHOST
    La forme numérique du nom de l'hôte est renvoyée. (Même si ce drapeau n'est pas levé, cela arrivera également lorsque le nom du n