您的位置:首页 > 其它

DNS域名系统

2012-07-04 15:55 429 查看
DNS是用于TCP/IP应用程序的分布式数据库,同主机名字和IP地址之间的转换及有关电子邮件的选路信息。

对DNS的访问时通过地址解析器来完成的,在unix主机中,解析器主要通过两个库函数gethostbyname和gethostbyaddr来访问的。

#include <netdb.h>

struct hostent *gethostbyname(const char *hostname);
返回:非空指针——成功,空指针——出错,同时设置h_errno

struct hostent *gethostbyaddr(const char *addr, socklen_t len, int family);
返回:非空指针——成功,空指针——出错,同时设置h_errno

h_errno可以通过解析器提供的hstrerror的函数,返回相应错误说明:
hstrerror(h_errno)


当用户在浏览器当中输入一个网站,说说计算机对dns解释经过那些流程?注:本机跟本地dns还没有缓存。
a.用户输入网址到浏览器
b.浏览器发出DNS请求信息
c.计算机首先查询本机HOST文件,看是否存在,存在直接返回结果,不存在,继续下一步
d.计算机按照本地DNS的顺序,向合法dns服务器查询IP结果,
e.合法dns返回dns结果给本地dns,本地dns并缓存本结果,直到TTL过期,才再次查询此结果
f.返回IP结果给浏览器
g.浏览器根据IP信息,获取页面


DNS原理及其解析过程【精彩剖析】

/article/4304562.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: