这一章比较混乱,现在整理一下。

 

一、数据结构:

1、hostent: 这个数据结构用在gethostbyname这个函数中,表示与host 相关的一些 entries.

struct hostent {
   char  *h_name;         /* official (canonical) name of host */
   char **h_aliases;      /* pointer to array of pointers to alias names */
   int    h_addrtype;      /* host address type: AF_INET */
   int    h_length;           /* length of address: 4 */
   char **h_addr_list;   /* ptr to array of ptrs with IPv4 addrs */
};

UNP Ch 11, Name and Address Conversion

2、servent: 这个数据结构用在getservbyname这个函数中,表示service 相关的一些 entries.

struct servent {
  char   *s_name;       /* official service name */
  char  **s_aliases;    /* alias list */
  int     s-port;             /* port number, network-byte order */
  char   *s_proto;       /* protocol to use */
};


3、addrinfo: 这个数据结构用在getaddrinfo这个函数中,是它的返回值,表示与 IPv4或者IPv6 地址相关的一些信息.

struct addrinfo {
   int          ai_flags;           /* AI_PASSIVE, AI_CANONNAME */
   int          ai_family;          /* AF_xxx */
   int          ai_socktype;        /* SOCK_xxx */
   int          ai_protocol;        /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
   socklen_t    ai_addrlen;         /* length of ai_addr */
   char        *ai_canonname;       /* ptr to canonical name for host */
   struct sockaddr    *ai_addr;     /* ptr to socket address structure */
   struct addrinfo    *ai_next;     /* ptr to next structure in linked list */
};

UNP Ch 11, Name and Address Conversion

 

二、基本函数:

1、gethostbyname

UNP Ch 11, Name and Address Conversion

2、gethostbyaddr

UNP Ch 11, Name and Address Conversion

3、getservbyname

UNP Ch 11, Name and Address Conversion

4、getservbyport

UNP Ch 11, Name and Address Conversion

5、getaddrinfo

UNP Ch 11, Name and Address Conversion

6、gai_strerror

UNP Ch 11, Name and Address Conversion

7、freeaddrinfo

UNP Ch 11, Name and Address Conversion

8、getnameinfo

UNP Ch 11, Name and Address Conversion

     这些函数基本上都是resolver 所提供的函数,可以用来查找DNS,也可以不查找DNS而在本地电脑上查找相应的文件,这就需要设定相应的flags 等参数。

 

三、resolver

UNP Ch 11, Name and Address Conversion

相关文章:

  • 2022-12-23
  • 2021-10-29
  • 2021-06-09
  • 2021-09-29
  • 2022-12-23
  • 2022-02-26
  • 2021-09-23
  • 2022-12-23
猜你喜欢
  • 2021-09-07
  • 2022-02-22
  • 2021-09-12
  • 2022-12-23
  • 2022-12-23
  • 2021-12-18
  • 2021-12-01
相关资源
相似解决方案