¿Hay una función incorporada de llamada de función C++ que pueda obtener el nombre de host y la dirección IP? Gracias.C++ Llamada a la función de Windows que obtiene el nombre de host y la dirección IP locales
Respuesta
Para obtener el nombre de host puede utilizar: gethostname o el método asíncrono WSAAsyncGetHostByName
para obtener la información de direcciones, puede utilizar: getaddrinfo o la versión Unicode GetAddrInfoW
Puede obtener más información sobre el equipo nombre como el dominio mediante el uso de la API de Win32: .
Aquí hay una solución multiplataforma ... Windows, Linux y MacOSX. Puede obtener la dirección IP, puerto, sockaddr_in, puerto.
BOOL GetMyHostName(LPSTR pszBuffer, UINT nLen)
{
BOOL ret;
ret = FALSE;
if (pszBuffer && nLen)
{
if (gethostname(pszBuffer, nLen) == 0)
ret = TRUE;
else
*pszBuffer = '\0';
}
return ret;
}
ULONG GetPeerName(SOCKET _clientSock, LPSTR _pIPStr, UINT _IPMaxLen, int *_pport)
{
struct sockaddr_in sin;
unsigned long ipaddr;
ipaddr = INADDR_NONE;
if (_pIPStr && _IPMaxLen)
*_pIPStr = '\0';
if (_clientSock!=INVALID_SOCKET)
{
#if defined(_WIN32)
int locallen;
#else
UINT locallen;
#endif
locallen = sizeof(struct sockaddr_in);
memset(&sin, '\0', locallen);
if (getpeername(_clientSock, (struct sockaddr *) &sin, &locallen) == 0)
{
ipaddr = GetSinIP(&sin, _pIPStr, _IPMaxLen);
if (_pport)
*_pport = GetSinPort(&sin);
}
}
return ipaddr;
}
ULONG GetSinIP(struct sockaddr_in *_psin, LPSTR pIPStr, UINT IPMaxLen)
{
unsigned long ipaddr;
ipaddr = INADDR_NONE;
if (pIPStr && IPMaxLen)
*pIPStr = '\0';
if (_psin)
{
#if defined(_WIN32)
ipaddr = _psin->sin_addr.S_un.S_addr;
#else
ipaddr = _psin->sin_addr.s_addr;
#endif
if (pIPStr && IPMaxLen)
{
char *pIP;
struct in_addr in;
#if defined(_WIN32)
in.S_un.S_addr = ipaddr;
#else
in.s_addr = ipaddr;
#endif
pIP = inet_ntoa(in);
if (pIP)
adjust_str(pIP, pIPStr, IPMaxLen);
}
}
return ipaddr;
}
int GetSinPort(struct sockaddr_in *_psin)
{
int port;
port = 0;
if (_psin)
port = _Xntohs(_psin->sin_port);
return port;
}
Esto es increíble, muchas gracias! – Stan
cómo probar su función GetSinIP? –
Tenga en cuenta que el nombre de host devuelto por 'gethostname()' es ** no ** necesariamente el nombre tal como lo devuelve la resolución del nombre de dominio para cualquiera de las interfaces del host. Sin embargo ** podría ** ser el mismo nombre, si está configurado de esta manera. – alk
- 1. Obtener el nombre de host de la dirección IP
- 2. conversión de una dirección IP a nombre de host
- 3. Resolviendo la dirección IP del nombre de host con PowerShell
- 4. Dirección IP al nombre de host en Java?
- 5. Fallo de segmentación cuando al buscar el nombre de host y la dirección IP
- 6. Entero a la dirección IP - C
- 7. Apache httpd.conf para redirigir la IP al nombre de host
- 8. C#: ¿Obtener la dirección IP del nombre de dominio?
- 9. ¿Cómo obtener el nombre de host basado en la dirección IP?
- 10. Resolver ip al nombre de host
- 11. Resolver IP a nombre de host usando PHP
- 12. ¿Cómo puedo obtener el nombre de la computadora y la dirección IP de la computadora local?
- 13. Error de MySQL: No se puede obtener el nombre de host de su dirección IP
- 14. Obtenga la dirección IP de la máquina
- 15. obtienen llamadas nombre de la función de la función llamada
- 16. ¿Obtiene la dirección IP real del cliente con Rails y Nginx?
- 17. Llamada a la función c desde Java
- 18. Validar IPv4, IPv6 y nombre de host
- 19. Cómo establecer el nombre de host utilizando php curl para una dirección IP específica
- 20. Cómo resolver el nombre de host de la IP local en C# .NET?
- 21. En C++/Windows, ¿cómo obtengo el nombre de red de la computadora en la que estoy?
- 22. WP7 Mango - Cómo obtener una dirección IP para un nombre de host dado
- 23. En C#, ¿cómo puedo resolver la dirección IP de un host?
- 24. Obtiene el nombre de host de una clase DataSource
- 25. Secuencia de comandos para cambiar la dirección IP en Windows
- 26. función que toma la dirección() y da el valor
- 27. Redirigir la dirección IP al nombre de dominio
- 28. Obteniendo la dirección IP local
- 29. Nombre de host Vs Nombre de host canónico
- 30. Analizando la dirección IP en .NET
gethostname(), getaddrinfo() – WhirlWind