반응형

inet_ntop() 함수는

바이너리 형태의 IPv6 또는 IPv4 주소 네트워크정보(빅엔디안)를, 문자열(리틀엔디언)로 변환해주는 함수이다.

(from network(binary) to pointer)

 

inet_pton() 함수는

문자열(리틀엔디언)을 바이너리 형태의 IPv6 또는 IPv4 주소 네트워크정보(빅엔디안)로 변환해 주는 함수이다.

(from pointer to network(binary) 

 

예제

inet_ntop()

inet_pton()

#include <stdio.h>
#include <sys/socket.h>
#include <cstdlib>
#include <arpa/inet.h>
#include <netinet/in.h>
 
int main()
{
    in_addr addr;
    sockaddr_in addr_in;
    char buf[32] = {0,};
    char buf2[32] = {0,};
 
    inet_pton(AF_INET,"192.168.0.1",&addr.s_addr);
    inet_pton(AF_INET,"192.168.0.1",&addr_in.sin_addr);
 
    inet_ntop(AF_INET,&addr.s_addr,buf,sizeof(buf));
    inet_ntop(AF_INET,&addr_in.sin_addr,buf2,sizeof(buf2));
 
    printf("%s\n",buf);
    printf("%s\n",buf2);
 
    return 0;
 
}

 

시놉시스

const char *inet_ntop(int af, const void *restrict src,
                             char *restrict dst, socklen_t size);

af : address family

src : 네트워크 주소 구조체(network address structure)

dst : 결과 문자열이 복사되어질 버퍼를 가리키는 주소 (The resulting string is copied to the buffer pointed to by dst)

size : 버퍼의 사용 가능한 사이즈 (Caller는 이 버퍼의 가용한 사이즈를 명시해야함)

 

참고자료

https://man7.org/linux/man-pages/man3/inet_ntop.3.html

 

https://tttsss77.tistory.com/123

반응형