[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);
위 함수의 정 반대 기능을 하는 함수이다.
'Computer Science > Network' 카테고리의 다른 글
[Network] 10. 멀티 프로세스 기반의 서버 구현 (0) | 2023.05.28 |
---|---|
[Network] 9. 소켓의 다양한 옵션 (0) | 2023.05.28 |
[Network] 7. 소켓의 우아한 종료 (0) | 2023.05.28 |
[Network] 6. UDP 기반 서버/클라이언트 (0) | 2023.05.28 |
[Network] 5. TCP 기반 서버/클라이언트 2 (0) | 2023.05.28 |