"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > C++에서 로컬 컴퓨터의 IP 주소와 서브넷 마스크를 얻는 방법은 무엇입니까?

C++에서 로컬 컴퓨터의 IP 주소와 서브넷 마스크를 얻는 방법은 무엇입니까?

2024년 11월 15일에 게시됨
검색:716

How to Get a Local Computer's IP Address and Subnet Mask in C  ?

C에서 로컬 컴퓨터의 IP 주소와 서브넷 마스크를 검색하는 방법

로컬 컴퓨터의 IP 주소와 서브넷 마스크를 확인하는 것은 다양한 네트워크 운영을 위한 기본 요구 사항. C에는 이러한 값을 얻기 위한 여러 가지 접근 방식이 있습니다.

Torial의 코드는 IP 주소와 서브넷 마스크를 모두 검색하는 효과적인 솔루션을 제공합니다. getifaddrs() 함수를 활용하여 로컬 컴퓨터와 연결된 모든 네트워크 인터페이스 주소를 반복합니다.

다음은 약간 향상된 코드 버전입니다.

#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;
}

이 업데이트된 코드는 각 네트워크 인터페이스에 대해 IP 주소와 서브넷 마스크가 모두 올바르게 식별되고 인쇄되도록 보장합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3