더보기
Part 01
Ch. 01. Socket Network Programming
Ch. 02. File Descriptor, open(), close(), write(), read()
Ch. 05. Network Byte Order, Big Endian, Little Endian
Part 2
Ch.10.
Ch.11.
Ch.12.
Ch.13.
Ch.14.
Ch.15.
Ch.16.
Ch.17.
Ch.18.
Domain Name System
도메인 이름과 IP주소를 매칭시키는 일종의 분산 데이터베이스 시스템이다.
IP주소는 Domain Name에 비해 상대적으로 변경의 확률이 높다.
내 컴퓨터의 IP주소 확인
curl ifconfig.me
ipconfig
hostname -I
Domain의 IP주소 확인
ping www.naver.com
Default DNS Server
nslookup
hostnet 구조체
struct hostent
{
char *h_name; // official name : 공식 도메인
char **h_ali ases; // alias list : 둘 이상의 도메인
int h_addrtype ; // host address type : 주소 체계
int h_length ; // address length : IP 길이
char **h_addr_list; // address list : 여러 IP를 통한 분산 처리
}
도메인 -> IP
#include <netdb.h>
struct hostent *gethostbyname(const char *hostname);
// 성공시 hostent 구조체 변수의 주소 값, 실패시 NULL 포인터 반환
IP -> 도메인
#include <netdb.h>
struct hostent * gethostbyaddr(const char * addr, socklen_t len, int familY);
// 성공시 hostent 구조제 변수의 주소 값, 실패시 NULL 포인터 반환
// addr IP주소를 지니는 in_addr 구조체 변수의 포인터 전달
// IPv4 이외의 다양한 정보를 전달 위해 매개변수를 char형 포인터로 선언
// len 첫 번째 인자로 전달된 주소정보폐 IPv4의 경우 IPv6 의 경우 16 전달
// family 주소체계 정보 전달, IPv4의 경우 AFJNET, IPv6 의 경우 AFJNET6 전달