2.3 IPv4 주소 변환 [TCP/IP 소켓 프로그래밍 with 윈도우즈]

IPv4 주소는 최종 사용자가 기억하기 쉽게 “127.0.0.1”처럼 0에서 255사이의 4개의 정수를 점(.)으로 구분하여 문자열로 표현하고 있습니다. 하지만 이는 기억하기 쉽게 만든 표현 방식으로 실제 IPv4 주소는 4바이트 정수 값입니다.

윈속에서는 문자열로 표현한 주소를 네트워크 바이트 정렬 방식의 4바이트 정수로 변환하는 함수와 역으로 네트워크 바이트 정렬 방식의 4바이트 정수를 문자열로 변환하는 함수를 제공하고 있습니다.

IN_ADDR 형식 이름은 구조체 struct in_addr을 타입 재지정한 것입니다. 그리고 내부의 매크로로 s_addr을 정의하였는데 TCP/IP 통신에서 가장 많이 사용하는 매크로 멤버입니다.

예를 들어 네트워크 바이트 정렬 방식의 4바이트 정수로 표현한 IPv4 주소가 0x12345678일 때 IN_ADDR 형식 변수에 표현하면 다음처럼 표현할 수 있습니다.

실행 결과