getipnodebyname(3) Library Functions Manual getipnodebyname(3) NOM getipnodebyname, getipnodebyaddr, freehostent - Obtenir les adresses reseau et noms d'hote BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include #include #include [[obsolete]] struct hostent *getipnodebyname(const char *name, int af, int flags, int *error_num); [[obsolete]] struct hostent *getipnodebyaddr(const void addr[.len], size_t len, int af, int *error_num); [[obsolete]] void freehostent(struct hostent *ip); DESCRIPTION Ces fonctions sont deconseillees (et ne sont pas disponibles dans la glibc). Utilisez getaddrinfo(3) et getnameinfo(3) a la place. Les fonctions getipnodebyname() et getipnodebyaddr() renvoient le nom et l'adresse reseau d'un hote. Ces fonctions renvoient un pointeur sur une structure definie comme suit : struct hostent { char *h_name; char **h_aliases; int h_addrtype; int h_length; char **h_addr_list; }; Ces fonctions remplacent les fonctions gethostbyname(3) et gethostbyaddr(3) qui ne pouvaient qu'acceder aux adresses reseau de la famille IPv4. Les fonctions getipnodebyname() et getipnodebyaddr() peuvent fonctionner avec diverses familles d'adresses reseau. Contrairement aux fonctions du type gethostby, ces routines renvoient des pointeurs sur des zones de memoires allouees dynamiquement. La fonction freehostent() sert a liberer la zone de memoire allouee dynamiquement une fois que les informations se trouvant dans la structure hostent ne sont plus necessaires. Parametres de getipnodebyname() La fonction getipnodebyname() recherche l'adresse reseau de l'hote indique dans son argument name. Le parametre af prend l'une des valeurs suivantes : AF_INET Le parametre name represente une adresse decimale pointee IPv4, ou le nom d'un hote sur un reseau IPv4. AF_INET6 Le parametre name represente une adresse hexadecimale IPv6, ou le nom d'un hote sur un reseau IPv6. Le parametre flags indique des options supplementaires. Plusieurs options peuvent etre indiquees en les groupant avec un OU binaire. flags doit etre mis a 0 si aucune option n'est souhaitee. AI_V4MAPPED Cet attribut est utilise avec AF_INET6 pour demander de rechercher une adresse IPv4 plutot qu'une IPv6. L'adresse IPv4 devra toutefois etre projetee dans l'espace IPv6. AI_ALL Cet attribut est utilise avec AI_V4MAPPED pour demander une recherche simultanee d'adresses IPv4 et IPv6. Toute adresse IPv4 trouvee sera projetee dans l'espace IPv6. AI_ADDRCONFIG Cet attribut est utilise avec AF_INET6 pour indiquer que les requetes ulterieures d'adresses IPv6 n'auront pas lieu a moins que le systeme n'ait au moins une adresse IPv6 affectee a une interface reseau. Symetriquement, les requetes d'adresses IPv4 n'auront lieu que si le systeme dispose au moins d'une adresse IPv4 affectee a une interface reseau. Cet attribut peut etre utilise seul ou avec AI_V4MAPPED. AI_DEFAULT Cet attribut est equivalent a (AI_ADDRCONFIG | AI_V4MAPPED). Parametres de getipnodebyaddr() La fonction getipnodebyaddr() recherche le nom d'un hote dont l'adresse reseau est indiquee par l'argument addr. Le parametre af prend l'une des valeurs suivantes : AF_INET Le parametre addr pointe vers une structure struct in_addr et len doit valoir sizeof(struct in_addr). AF_INET6 Le parametre addr pointe vers une structure struct in6_addr et len doit valoir sizeof(struct in6_addr). VALEUR RENVOYEE En cas d'erreur, un pointeur NULL est renvoye, et error_num contiendra un code d'erreur parmi les suivants : HOST_NOT_FOUND Le nom d'hote ou l'adresse reseau n'ont pas ete trouves. NO_ADDRESS Le serveur de noms reconnait l'adresse reseau ou le nom, mais n'a pas fourni de reponse. Cela peut se produire si l'hote n'a que des adresses IPv4, et que seules des informations IPv6 ont ete demandees, ou l'inverse. NO_RECOVERY Le serveur de noms a renvoye une erreur definitive. TRY_AGAIN Le serveur de noms a renvoye une erreur temporaire. Reessayez plus tard. Une recherche couronnee de succes renvoie un pointeur sur une structure hostent contenant les champs suivants : h_name Nom officiel de l'hote. h_aliases Table de pointeurs vers des alias non officiels du meme hote. La table est terminee par un pointeur NULL. h_addrtype Il s'agit d'une copie du parametre af de getipnodebyname() ou getipnodebyaddr(). h_addrtype sera toujours AF_INET si le parametre af etait AF_INET. h_addrtype sera toujours AF_INET6 si le parametre af etait AF_INET6. h_length Ce champ sera defini a sizeof(struct in_addr) si h_addrtype est AF_INET, et sizeof(struct in6_addr) si h_addrtype vaut AF_INET6. h_addr_list Il s'agit d'une table de pointeurs vers les structures d'adresse de l'hote. La table est terminee par un pointeur NULL. STANDARDS Aucune. HISTORIQUE RFC 2553. Presentes dans la glibc 2.1.91-95, mais elle en ont ete retirees. Plusieurs systemes de type UNIX les prennent en charge, mais tous les considerent comme deconseillees. VOIR AUSSI getaddrinfo(3), getnameinfo(3), inet_ntop(3), inet_pton(3) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Jean-Pierre Giraud Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 getipnodebyname(3)