Cómo recuperar la dirección IP y la máscara de subred de una computadora local en C
Determinar la dirección IP y la máscara de subred de la computadora local es una Requisito fundamental para diversas operaciones de red. En C, existen varios métodos para obtener estos valores.
El código de Torial proporciona una solución eficaz para recuperar tanto la dirección IP como la máscara de subred. Aprovecha la función getifaddrs() para iterar a través de todas las direcciones de interfaz de red asociadas con la computadora local.
Aquí hay una versión ligeramente mejorada del código:
#include#include #include #include int main() { struct ifaddrs *ifaddr; int err; if ((err = getifaddrs(&ifaddr)) != 0) { perror("getifaddrs"); exit(EXIT_FAILURE); } for (struct ifaddrs *ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) { if (!ifa->ifa_addr) continue; // Print the IP address if (ifa->ifa_addr->sa_family == AF_INET) { char ip[INET_ADDRSTRLEN]; inet_ntop(AF_INET, &((struct sockaddr_in *)ifa->ifa_addr)->sin_addr, ip, INET_ADDRSTRLEN); printf("IP: %s\n", ip); } // Print the subnet mask if (ifa->ifa_netmask->sa_family == AF_INET) { char mask[INET_ADDRSTRLEN]; inet_ntop(AF_INET, &((struct sockaddr_in *)ifa->ifa_netmask)->sin_addr, mask, INET_ADDRSTRLEN); printf("Subnet Mask: %s\n", mask); } } freeifaddrs(ifaddr); return 0; }
Este código actualizado garantiza que tanto la dirección IP como la máscara de subred estén correctamente identificadas e impresas para cada interfaz de red.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3