본문 바로가기

공부/tcp/ip 프로그래밍

8장 도메인 이름과 인터넷 주소

반응형

도메인 <-> 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포인터 반환

 

반응형