[Network] 8. 도메인 이름과 인터넷 주소

2023. 5. 28. 15:30

 

1. 도메인 이름과 DNS 서버

도메인 이름(Domain Name)
IP 를 대신하는 서버의 주소
실제 접속에 사용되는 주소는 아니다. 이 정보 IP로 변환이 되어야 접속이 가능하다. 
우리가 기억하는 대부분의 주소는 Domain Name이다. (www.naver.com, www.google.com  등)

DNS(Domain Name System) 서버
도메인 이름을 IP 로 변환해주는 서버
DNS 일종의 분산 데이터베이스 시스템이다.

 

2. IP 주소와 도메인 이름 사이의 변환

도메인 이름을 이용해서 IP 주소 얻어오기

#include <netdb.h>

struct hostent * gethostbyname(const char * hostname);

IP는 도메인 이름에 비해 상대적으로 변동이 심하기 때문에 IP를 코드로 입력하면 자주 바꿔야하낟. 그렇기 때문에 도메인 이름에서 IP를 받아오는게 안정적이며, 그럴때 사용하는 함수이다.

 

  • hostent
sturct hostent
{
	char * h_name;
    char ** h_aliases;
    int h_addrtype;
    int h_length;
    char ** h_addr_list;

}

h_name : 공식 도메인 이름
h_aliases : 별칭의 도메인 이름
h_addrtype : 반환된 IP의 정보가 IPv4인 경우, AF_INET이 반환
h_length : 반환된 IP 정보의 크기 (IPv4 : 4, IPv6 : 16 )
h_addr_list : IP의 주소정보, 둘 이상의 경우 모두 반환

 

IP 주소를 이용해서 도메인 정보 얻어오기

#include <netdb.h>

struct hostent * gethostbyaddr(const char * addr, socklen_t len, int family);

위 함수의 정 반대 기능을 하는 함수이다.

BELATED ARTICLES

more