DNS域名系统
DNS中的条目被称为资源记录(resource record)
解析器和名字服务器
每个组织机构有自己的名字服务器,运行名字解析服务,通过调用gethostbyname(www->ip)和gethostbyaddr(ip->www)来和DNS服务器进行接触
gethostbyname函数
原型:
extern struct hostent *gethostbyname (const char *__name);
功能:通过name参数得到IP
返回结构:
struct hostent
{
char *h_name; /* Official name of host. */
char **h_aliases; /* Alias list. */
int h_addrtype; /* Host address type. */
int h_length; /* Length of address. */
char **h_addr_list; /* List of addresses from name server. */
#ifdef __USE_MISC
# define h_addr h_addr_list[0] /* Address, for backward compatibility.*/
#endif
};
gethostbyaddr函数
原型:
extern struct hostent *gethostbyaddr (const void *__addr, __socklen_t __len,
int __type);
功能:通过IP地址查找主机名
getserverbyname和getserverbyport函数
extern struct servent *getservbyname (const char *__name, const char *__proto);
返回的servent
struct servent
{
char *s_name; /* Official service name. */
char **s_aliases; /* Alias list. */
int s_port; /* Port number. */
char *s_proto; /* Protocol to use. */
};
extern struct servent *getservbyport (int __port, const char *__proto);
其中port参数必须为网络字节序