C에서 로컬 컴퓨터의 IP 주소와 서브넷 마스크를 검색하는 방법
로컬 컴퓨터의 IP 주소와 서브넷 마스크를 확인하는 것은 다양한 네트워크 운영을 위한 기본 요구 사항. C에는 이러한 값을 얻는 여러 가지 접근 방식이 있습니다.
Torial의 코드는 IP 주소와 서브넷 마스크를 모두 검색하는 효과적인 솔루션을 제공합니다. getifaddrs() 함수를 활용하여 로컬 컴퓨터와 연결된 모든 네트워크 인터페이스 주소를 반복합니다.
다음은 약간 향상된 코드 버전입니다.
#include <ifaddrs.h> #include <stdio.h> #include <stdlib.h> #include <string.h> 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; }
이 업데이트된 코드는 두 가지 모두를 보장합니다. 각 네트워크 인터페이스에 대해 IP 주소와 서브넷 마스크가 올바르게 식별되고 인쇄됩니다.
위 내용은 C에서 로컬 컴퓨터의 IP 주소와 서브넷 마스크를 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!