도메인 이름 시스템

2279 단어

DNS(Domain Name System)


DNS의 항목을 리소스 레코드(RR)라고 합니다.
  • A 레코드는 호스트 이름을 32비트 IPv4 주소로 비추기
  • AAAA는 4A라고 하며 128비트 IPv6
  • 에 매핑됨
  • PTR을'바늘기록'이라고 하는 PTR 기록은 IP 주소를 호스트 이름으로 비추고 IPv4 주소, 32비트 주소의 4바이트에 대해 먼저 반전 순서를 하고 각 바이트는 각자의 10진수 ASCII로 전환하고 in-addr를 추가한다.arpa, 결과 문자열은 PTR 질의용
  • MX MX 레코드는 하나의 호스트를 주어진 호스트의'메일 교환기'로 지정하고 여러 개의 MX 레코드가 존재할 때 우리는 우선순위 순서에 따라 사용한다. 값이 작을수록 우선순위가 높다
  • CNAME 규범 이름, 흔히 사용하는 서비스 지시 CANME 기록
  • c 라이브러리 코드

    #include 
    struct hostent * gethostbyname(const char *hostname);  //  IPv4 
    struct hostent {
      char *h_name;
      char ** h_aliases;
      int h_addrtype;
      int h_length;
      char ** h_addr_list;
    }
    struct hostent * gethostbyaddr(const char *addr, socklen_t len, int family)  //  IPv4 
    //  
    struct servent {
      char *s_name,
      char **s_aliases,
      int s_port,
      char *s_proto 
    }
    struct servent * getservbyname(const char *servname, const char *protoname);
    struct servent * getservbyport(int port, const char * protoname);
    // ipv6  
    struct addrinfo {
      int ai_flags;
      int ai_family;
      int ai_socktype;
      int ai_protocol;
      socklen_t ai_addrlen;
      char *ai_canonname;
      struct sockaddr * ai_addr;
      struct addrinfo *ai_next;
    }
    int getaddrinfo(const char *hostname, const char *service, const struct addrinfo *hints, struct addrinfo, **result);
    int getnameinfo(const struct sockaddr *sockaddr, socklen_t addrlen, char *host, socklen_t hostlen, char *serv, socklen_t servlen, int flags)
    const char * gai_strerror(int error); //  getaddrinfo 
    void freeaddrinfo(struct addrinfo *al); //  getaddrinfo addrinfo  
    

    LINUX 시스템 호스트


    파일/etc/resolv.conf는 보통 로컬 이름 서버 호스트의 IP 주소를 포함합니다

    리셋 불가 함수

    gethostbyname
    gethostbyaddr
    getservbyname
    getservbyport
    //  4 , 
    //  4 , _r 
    inet_pton
    inet_ntop 
    //  
    inet_ntoa //  
    

    함수 도문 구조


    메시지
    데이터 파일
    구조
    키 값 찾기 함수
    호스트/etc/hosts/
    hostent
    gethostbyaddr、gethostbyname
    네트워킹/etc/networks
    netent
    getnetbyaddr、getnetbyname
    합의/etc/protocols
    protoent
    getprotobyname、getprotobynumber
    서비스/etc/services
    servent
    getservbyname、getservbyport

    좋은 웹페이지 즐겨찾기