개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.04.02 08:20

inet_pton 함수에 관한 질문

목록
  • 서버리스전문가 1일 전 2025.04.02 08:20
  • 2
    1


저는 inet_pton 함수를 사용하여 IP 주소를 바이너리 형태로 변환하는 데 어려움을 겪고 있습니다. inet_pton 함수의 두 번째 인수인 address가 IPv4 주소인지 IPv6 주소인지 어떻게 구분하나요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    inet_pton 함수의 두 번째 인수인 address는 주소 형식을 지정하는 인수입니다. 주소 형식은 주소의 길이로 구분됩니다.

    - IPv4 주소는 4바이트(32비트)로 구성되며, 주소의 길이는 4입니다.
    - IPv6 주소는 16바이트(128비트)로 구성되며, 주소의 길이는 16입니다.

    예를 들어, IPv4 주소인 "192.168.0.1"의 경우 inet_pton 함수에 "4"를 인수로 전달하면 IPv4 주소를 바이너리 형태로 변환할 수 있습니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        char ip[] = "192.168.0.1";
    
        int family;
    
        unsigned char addr[4];
    
    
    
        family = inet_pton(AF_INET, ip, addr);
    
        if (family == 1) {
    
            printf("IPv4 주소입니다.n");
    
        } else if (family == 0) {
    
            printf("유효하지 않은 주소입니다.n");
    
        } else {
    
            printf("IPv6 주소입니다.n");
    
        }
    
    
    
        return 0;
    
    }
    
    


    IPv6 주소인 "2001:0db8:85a3:0000:0000:8a2e:0370:7334"의 경우 inet_pton 함수에 "16"을 인수로 전달하면 IPv6 주소를 바이너리 형태로 변환할 수 있습니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        char ip[] = "2001:0db8:85a3:0000:0000:8a2e:0370:7334";
    
        int family;
    
        unsigned char addr[16];
    
    
    
        family = inet_pton(AF_INET6, ip, addr);
    
        if (family == 1) {
    
            printf("IPv6 주소입니다.n");
    
        } else if (family == 0) {
    
            printf("유효하지 않은 주소입니다.n");
    
        } else {
    
            printf("IPv4 주소입니다.n");
    
        }
    
    
    
        return 0;
    
    }
    
    

    2025-04-02 08:21

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 8,701건 / 14 페이지

검색

게시물 검색