더북(TheBook)

inet_pton() 함수는 사람이 읽을 수 있는 IP 주소 문자열을 이진 IP 주소로 변환해 주기는 하지만, 오직 IP 주소 형태의 문자열만 처리할 수 있다. 즉, 도메인 네임이나 DNS 조회(lookup) 등은 수행하지 않는다. DNS 질의(query)를 수행해 도메인 네임을 IP 주소로 변환하고 싶다면 getaddrinfo() 함수를 사용한다.

int getaddrinfo(const char* hostname, const char* servname,
    const addrinfo* hints, addrinfo** res);

hostname은 널 종료 문자열로 도메인 조회를 할 이름 문자열을 가리켜야 한다. 예를 들면 "live-shore.herokuapp.com" 같은 문자열이다.

servname엔 포트 번호 또는 서비스 이름을 널 종료 문자열로 지정해야 하는데, 예를 들어 "80"이나 "http"를 지정하면 포트 80번에 해당하는 sockaddr_in을 얻을 수 있다.

hints엔 호출자가 어떤 정보를 받고 싶은지를 기재해 둔 addrinfo 구조체의 포인터를 넘긴다. 원하는 주소 패밀리나 다른 요구 사항을 지정해 호출할 수 있으며, 그냥 모든 결과를 받으려는 경우엔 nullptr를 넘기면 된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.