gethostname, fonction (winsock.h)

La fonction gethostname récupère le nom d’hôte standard de l’ordinateur local.

Syntaxe

int gethostname(
  [out] char *name,
  [in]  int  namelen
);

Paramètres

[out] name

Pointeur vers une mémoire tampon qui reçoit le nom d’hôte local.

[in] namelen

Longueur, en octets, de la mémoire tampon pointée vers le paramètre name .

Valeur retournée

Si aucune erreur ne se produit, gethostname retourne zéro. Sinon, il retourne SOCKET_ERROR et un code d’erreur spécifique peut être récupéré en appelant WSAGetLastError.

Code d'erreur Signification
WSAEFAULT
Le paramètre name est un pointeur NULL ou n’est pas une partie valide de l’espace d’adressage utilisateur. Cette erreur est également retournée si la taille de mémoire tampon spécifiée par le paramètre namelen est trop petite pour contenir le nom d’hôte complet.
WSANOTINITIALISED
Un appel WSAStartup réussi doit se produire avant d’utiliser cette fonction.
WSAENETDOWN
Le sous-système réseau a échoué.
WSAEINPROGRESS
Un appel bloquant Windows Sockets 1.1 est en cours ou le fournisseur de services traite toujours une fonction de rappel.

Remarques

La fonction gethostname retourne le nom de l’hôte local dans la mémoire tampon spécifiée par le paramètre name . Le nom d’hôte est retourné sous la forme d’une chaîne terminée par null. La forme du nom d’hôte dépend du fournisseur Windows Sockets : il peut s’agir d’un nom d’hôte simple ou d’un nom de domaine complet. Toutefois, il est garanti que le nom retourné sera correctement analysé par gethostbyname et WSAAsyncGetHostByName.

La longueur maximale du nom retourné dans la mémoire tampon pointée par le paramètre name dépend du fournisseur d’espaces de noms.

Si la fonction gethostname est utilisée sur une ressource de cluster sur Windows Server 2008, Windows Server 2003 ou Windows 2000 Server et que la variable d’environnement CLUSTER_NETWORK_NAME est définie, la valeur de cette variable d’environnement remplace le nom d’hôte réel et est retournée. Sur une ressource de cluster, la variable d’environnement CLUSTER_NETWORK_NAME contient le nom du cluster.

La fonction gethostname interroge les fournisseurs d’espaces de noms pour déterminer le nom d’hôte local à l’aide du GUID SVCID_HOSTNAME défini dans le fichier d’en-tête Svgguid.h . Si aucun fournisseur d’espace de noms ne répond, la fonction gethostname retourne le nom NetBIOS de l’ordinateur local.

La longueur maximale, en octets, de la chaîne retournée dans la mémoire tampon pointée par le paramètre name dépend du fournisseur d’espace de noms, mais cette chaîne doit être inférieure ou inférieure à 256 octets. Par conséquent, si une mémoire tampon de 256 octets est passée dans le paramètre name et que le paramètre namelen est défini sur 256, la taille de mémoire tampon sera toujours suffisante.

Note Si aucun nom d’hôte local n’a été configuré, gethostname doit réussir et retourner un nom d’hôte de jeton que gethostbyname ou WSAAsyncGetHostByName peuvent résoudre.
 

Windows Phone 8 : cette fonction est prise en charge pour les applications du Store Windows Phone Windows Phone 8 et versions ultérieures.

Windows 8.1 et Windows Server 2012 R2 : cette fonction est prise en charge pour les applications du Windows Store sur Windows 8.1, Windows Server 2012 R2 et versions ultérieures.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8.1, Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête winsock.h (inclure Winsock2.h)
Bibliothèque Ws2_32.lib
DLL Ws2_32.dll

Voir aussi

GetAddrInfoW

WSAsyncGetHostByName

Fonctions Winsock

Informations de référence sur Winsock

gethostbyname