도메인 <-> ip
DNS 서버
도메인 이름 <-> ip에 대한 정보 얻음
ip나 도메인을 이용해서 hostent구조체를 얻어옴
struct hostent
{
char* h_name; //official name
char** h_aliases; //alias list
int h_addrtype; //host address type
int h_length; //address length
char* h_addr_list;//address list
}
리눅스
도메인 이름을 이용해서 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의 경우 4, ipv6의 경우 16전달
family : 주소체계 정보 전달. ipv4의 경우 AF_INET, ipv6의 경우 AF_INET6전달
윈도우
#include <winsock2.h>
struct hostent* gethostbyname(const char* name);
성공시 hostent구조체 변수의 주소값, 실패시 null 포인터 반환
#include <winsock2.h>
struct hostent* gethostbyaddr(const char* addr, int len, int type);
성공시 hostent 구조체 변수의 주소값, 실패시 null포인터 반환