¿Cómo obtener la dirección IP local en VC?
Proceso de ejecución para obtener la IP local:
WSAStartup().Comando de inicio asincrónico de Windows Sockets, la programación de red en Windows debe habilitarse primero; de lo contrario, las operaciones posteriores informarán un error: 10093 :
p>La llamada WSAStartup() no se ejecutó correctamente.
gethostname() obtiene el nombre de la máquina
gethostbyname() obtiene la información de red de la máquina, la almacena en el puntero struct hostent * y la devuelve a la persona que llama
Obtenga la dirección IP de la información de la estructura struct hostent y conviértala en una salida de cadena.
Código de referencia: #include?"winsock2.h"
#pragma?comment(lib, "ws2_32.lib")
int?main(int ?argc, ?char*?argv[])
{
WSADATA?wsaData;
char?name[155];
char?*ip;
PHOSTENT?hostinfo;
if (?WSAStartup(?MAKEWORD(2,0),?amp;wsaData?)? ==?0?)
{
if (?gethostname?(?nombre,?sizeof(nombre))?==?0)
{
printf("hostname=s\n",?nombre?);
if((hostinfo?=?gethostbyname(nombre))?! =?NULL)
{
ip?=?inet_ntoa?(*(struct?in_addr?*)*hostinfo-gt;h_addr_list);?//obtener cadena de dirección
printf("local?host?ip :? s\n", ip);
}
}
}
WSACleanup(?);
}
¿regresar?0;
}