Cómo obtener la dirección IP de una determinada máquina usando programación C++
Para obtener la dirección IP, primero debe obtener el nombre de host de la máquina. Esto se puede lograr llamando a gethostname con el nombre de host, luego llame a gethostbyname para obtener más información, incluida la dirección IP. información. gethostbyname devuelve un puntero a la estructura de datos del host, que se define en el archivo : // De winsock.hstruct hostent {char FAR * h_name;* Nombre de host formal */char FAR * FAR * h_aliases / * Lista de alias */short h_addrtype; /* Tipo de dirección de host */short h_length; /* Longitud de dirección */}; De hecho, hostent es una estructura de datos de longitud variable, h_name es el nombre del host y el valor en el programa de ejemplo es "zxn.hangwire.sdb". No hay alias (h_aliases). h_addrtype es el tipo de dirección (o también llamado familia de direcciones), y el valor en el programa de ejemplo es 2 (AF_INET = internet, para obtener más información, consulte winsock.h). h_length es la longitud de cada dirección, en bytes. Debido a que la longitud de la dirección IP es de 4 bytes, el valor en el programa de ejemplo es 4. h_addr_list es el punto de partida de la matriz de direcciones. Se almacenan uno tras otro y terminan con un valor nulo. Cada número x.y.z.w ocupa un byte. Para formatear la dirección IP en el formato x.y.z.w, primero se debe copiar la matriz de direcciones a una estructura de datos llamada sockaddr y luego se debe llamar a una función especial inet_ntoa. La Figura 2 es un diagrama esquemático de la estructura del host almacenada en la memoria: La Figura 2 es un diagrama esquemático de la estructura del host almacenada en la memoria. Creo que con la explicación anterior y la lectura del código, ya no estará familiarizado con la estructura del host. en el futuro. Finalmente, ¡les deseo feliz programación!