hosts文件详解
不论是linux还是windows系统中,都存在一个文件叫hosts.它是一个文本格式的文件,可以手工编辑.
hosts文件的作用很简单:加速域名解析的速度.它里面保存了一些最经常使用的域名和IP的对应关系,或者不经常用但是IP永远不发生变化的域名或者主机地址.比如:如果cnblogs.com的IP永远不发生变化,就可以把它写到hosts文件中,以后再需要访问cnblogs.com时就不再需要DNS先进行解析,而可以直接从hosts文件中找到其IP地址,直接进行访问.
由hosts文件的目的可以看出,hosts文件可以具备其它的功能.比如:如果你想禁止使用本机的用户访问www.deniedwebsite.com,你可以在hosts文件中,将它映射到一个无效的IP地址,或者映射到一个安全的地址如cnblogs.com的IP,甚至直接映射到本机的IP127.0.0.1.这样,当以后访问那个网站时,由于系统监测到hosts文件中已经有它的映射,系统就不会再让DNS进行地址解析,而直接选择hosts文件中指定的IP进行访问.
下面介绍一下hosts文件的格式.
hosts文件是文本文件,每个地址映射占一行.每行的格式如下:
IP地址 主机或者域名 [主机的别名] [主机的别名]....
其中IP地址和主机是必需的.后面可以跟一个或多个别名.不同字段之间用一个或者多个空格(或TAB)分隔开.
hosts文件中可以有注释,每行#后面的内容会被系统视为注释而忽略.
一般的系统hosts文件中,至少应该有以下内容:
127.0.0.1 localhost localhost.localdomain
意思是把localhost映射到本机.
如果没有这行内容,就会出现系统"不认识localhost"的现象.哪怕是ping localhost,都会不通的.而应用程序如果调用系统函数gethostbyname("localhost"),会得到一个NOT_FOUND的错误.这是当然的.因为hosts文件中没有localhost,那么系统会让DNS解析localhost,得到的答案应该就是:主机不存在.