Función gethostname (winsock.h)

La función gethostname recupera el nombre de host estándar del equipo local.

Sintaxis

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

Parámetros

[out] name

Puntero a un búfer que recibe el nombre de host local.

[in] namelen

Longitud, en bytes, del búfer al que apunta el parámetro name .

Valor devuelto

Si no se produce ningún error, gethostname devuelve cero. De lo contrario, devuelve SOCKET_ERROR y se puede recuperar un código de error específico llamando a WSAGetLastError.

Código de error Significado
WSAEFAULT
El parámetro name es un puntero NULL o no es una parte válida del espacio de direcciones del usuario. Este error también se devuelve si el tamaño del búfer especificado por el parámetro namelen es demasiado pequeño para contener el nombre de host completo.
WSANOTINITIALISED
Debe producirse una llamada de WSAStartup correcta antes de usar esta función.
WSAENETDOWN
Error en el subsistema de red.
WSAEINPROGRESS
Una llamada de Bloqueo de Windows Sockets 1.1 está en curso o el proveedor de servicios sigue procesando una función de devolución de llamada.

Comentarios

La función gethostname devuelve el nombre del host local en el búfer especificado por el parámetro name . El nombre de host se devuelve como una cadena terminada en null. El formato del nombre de host depende del proveedor de Windows Sockets: puede ser un nombre de host simple o puede ser un nombre de dominio completo. Sin embargo, se garantiza que el nombre devuelto se analizará correctamente mediante gethostbyname y WSAAsyncGetHostByName.

La longitud máxima del nombre devuelto en el búfer al que apunta el parámetro name depende del proveedor de espacios de nombres.

Si la función gethostname se usa en un recurso de clúster en Windows Server 2008, Windows Server 2003 o Windows 2000 Server y se define la variable de entorno CLUSTER_NETWORK_NAME , el valor de esta variable de entorno invalida el nombre de host real y se devuelve. En un recurso de clúster, la variable de entorno CLUSTER_NETWORK_NAME contiene el nombre del clúster.

La función gethostname consulta proveedores de espacios de nombres para determinar el nombre de host local mediante el GUID de SVCID_HOSTNAME definido en el archivo de encabezado Svgguid.h . Si no responde ningún proveedor de espacios de nombres, la función gethostname devuelve el nombre NetBIOS del equipo local.

La longitud máxima, en bytes, de la cadena devuelta en el búfer a la que apunta el parámetro name depende del proveedor de espacios de nombres, pero esta cadena debe tener 256 bytes o menos. Por lo tanto, si se pasa un búfer de 256 bytes en el parámetro name y el parámetro namelen se establece en 256, el tamaño del búfer siempre será adecuado.

Nota Si no se ha configurado ningún nombre de host local, gethostname debe ser correcto y devolver un nombre de host de token que gethostbyname o WSAAsyncGetHostByName pueda resolver.
 

Windows Phone 8: esta función es compatible con las aplicaciones de Windows Phone Store en Windows Phone 8 y versiones posteriores.

Windows 8.1 y Windows Server 2012 R2: esta función es compatible con las aplicaciones de la Tienda Windows en Windows 8.1, Windows Server 2012 R2 y versiones posteriores.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8.1, Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado winsock.h (incluya Winsock2.h)
Library Ws2_32.lib
Archivo DLL Ws2_32.dll

Consulte también

GetAddrInfoW

WSAAsyncGetHostByName

Funciones winsock

Referencia de Winsock

gethostbyname