getipnodebyname
Section: C Library Functions (3)
Updated: 10 novembre 2022
Index
Return to Main Contents
NOM
getipnodebyname, getipnodebyaddr, freehostent - Obtenir les adresses réseau
et noms d'hôte
BIBLIOTHÈQUE
Bibliothèque C standard (libc, -lc)
SYNOPSIS
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
[[obsolète]] struct hostent *getipnodebyname(const char *name, int af,
int flags, int *error_num);
[[obsolète]] struct hostent *getipnodebyaddr(const void addr[.len],
size_t len, int af,
int *error_num);
[[obsolète]] void freehostent(struct hostent *ip);
DESCRIPTION
Ces fonctions sont déconseillées (et ne sont pas disponibles dans la
glibc). Utilisez getaddrinfo(3) et getnameinfo(3) à la place.
Les fonctions getipnodebyname() et getipnodebyaddr() renvoient le nom
et l'adresse réseau d'un hôte. Ces fonctions renvoient un pointeur sur une
structure définie 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'accéder aux adresses réseau de la
famille IPv4. Les fonctions getipnodebyname() et getipnodebyaddr()
peuvent fonctionner avec diverses familles d'adresses réseau.
Contrairement aux fonctions du type gethostby, ces routines renvoient des
pointeurs sur des zones de mémoires allouées dynamiquement. La fonction
freehostent() sert à libérer la zone de mémoire allouée dynamiquement une
fois que les informations se trouvant dans la structure hostent ne sont
plus nécessaires.
Paramètres de getipnodebyname()
La fonction getipnodebyname() recherche l'adresse réseau de l'hôte
indiqué dans son argument name. Le paramètre af prend l'une des
valeurs suivantes :
- AF_INET
-
Le paramètre name représente une adresse décimale pointée IPv4, ou le nom
d'un hôte sur un réseau IPv4.
- AF_INET6
-
Le paramètre name représente une adresse hexadécimale IPv6, ou le nom
d'un hôte sur un réseau IPv6.
Le paramètre flags indique des options supplémentaires. Plusieurs options
peuvent être indiquées en les groupant avec un OU binaire. flags doit
être mis à 0 si aucune option n'est souhaitée.
- AI_V4MAPPED
-
Cet attribut est utilisé avec AF_INET6 pour demander de rechercher une
adresse IPv4 plutôt qu'une IPv6. L'adresse IPv4 devra toutefois être
projetée dans l'espace IPv6.
- AI_ALL
-
Cet attribut est utilisé avec AI_V4MAPPED pour demander une recherche
simultanée d'adresses IPv4 et IPv6. Toute adresse IPv4 trouvée sera projetée
dans l'espace IPv6.
- AI_ADDRCONFIG
-
Cet attribut est utilisé avec AF_INET6 pour indiquer que les requêtes
ultérieures d'adresses IPv6 n'auront pas lieu à moins que le système n'ait
au moins une adresse IPv6 affectée à une interface réseau. Symétriquement,
les requêtes d'adresses IPv4 n'auront lieu que si le système dispose au
moins d'une adresse IPv4 affectée à une interface réseau. Cet attribut peut
être utilisé seul ou avec AI_V4MAPPED.
- AI_DEFAULT
-
Cet attribut est équivalent à (AI_ADDRCONFIG | AI_V4MAPPED).
Paramètres de getipnodebyaddr()
La fonction getipnodebyaddr() recherche le nom d'un hôte dont l'adresse
réseau est indiquée par l'argument addr. Le paramètre af prend l'une
des valeurs suivantes :
- AF_INET
-
Le paramètre addr pointe vers une structure struct in_addr et len
doit valoir sizeof(struct in_addr).
- AF_INET6
-
Le paramètre addr pointe vers une structure struct in6_addr et len
doit valoir sizeof(struct in6_addr).
VALEUR RENVOYÉE
En cas d'erreur, un pointeur NULL est renvoyé, et error_num contiendra un
code d'erreur parmi les suivants :
- HOST_NOT_FOUND
-
Le nom d'hôte ou l'adresse réseau n'ont pas été trouvés.
- NO_ADDRESS
-
Le serveur de noms reconnaît l'adresse réseau ou le nom, mais n'a pas fourni
de réponse. Cela peut se produire si l'hôte n'a que des adresses IPv4, et
que seules des informations IPv6 ont été demandées, ou l'inverse.
- NO_RECOVERY
-
Le serveur de noms a renvoyé une erreur définitive.
- TRY_AGAIN
-
Le serveur de noms a renvoyé une erreur temporaire. Réessayez plus tard.
Une recherche couronnée de succès renvoie un pointeur sur une structure
hostent contenant les champs suivants :
- h_name
-
Nom officiel de l'hôte.
- h_aliases
-
Table de pointeurs vers des alias non officiels du même hôte. La table est
terminée par un pointeur NULL.
- h_addrtype
-
Il s'agit d'une copie du paramètre af de getipnodebyname() ou
getipnodebyaddr(). h_addrtype sera toujours AF_INET si le paramètre
af était AF_INET. h_addrtype sera toujours AF_INET6 si le
paramètre af était AF_INET6.
- h_length
-
Ce champ sera défini à 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'hôte. La table est terminée par un pointeur NULL.
STANDARDS
RFC 2553
NOTES
Ces fonctions étaient présentes dans la glibc 2.1.91-95, mais en ont été
retirées. Plusieurs systèmes de type UNIX les supportent, mais tous les
considèrent comme déconseillées.
VOIR AUSSI
getaddrinfo(3), getnameinfo(3), inet_ntop(3), inet_pton(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>
et
David Prévot <david@tilapin.org>
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 à
Index
- NOM
-
- BIBLIOTHÈQUE
-
- SYNOPSIS
-
- DESCRIPTION
-
- Paramètres de getipnodebyname()
-
- Paramètres de getipnodebyaddr()
-
- VALEUR RENVOYÉE
-
- STANDARDS
-
- NOTES
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 20:33:54 GMT, May 22, 2024