您的位置:首页 > 其它

LocalHost为何会是127.0.0.1的地址呢

2009-12-18 19:03 381 查看
不妨做个测试,在windows系统的MS-DOS窗口下或Linux系统的终端(Terminal)下输入ping localhost ,(以windows为例:开始→运行→cmd回车→ping localhost→回车)你将得到一个返回的地址127.0.0.1。这是怎么回事呢?其实这就是你的主机访问自己时用的IP地址。要知道大家上网用的都是IP地址。如百度的IP地址是220.181.6.182。当你在浏览器的地址栏输入220.181.6.182再回车会看见你进入了百度的主页。并且浏览器的地址栏不是显示http://220.181.6.182而是显示http://www.baidu.com但是若你输入119.75.216.30回车时同样进入百度的主页。但是浏览器的地址栏是显示http://119.75.216.30但是大家常常是用www.baidu.com来上网的而没有用前面说的烦人的又难记的IP地址,这是怎么回事呢?

这里你输入的www.baidu.com叫做域名当你敲回车后,

浏览器对操作系统说我要www.baidu.com的IP地址,

于是操作系统干了“一件事”(这件事我们下面要讲)操作系统说我暂时不知道,你等一下。

然后操作系统就调用解析程序,这时你的操作系统成了DNS服务器的一个客户,

你的操作系统对你们单位的服务器说刚刚有个家伙问我www.baidu.com的IP地址是多少,你能不能告诉我,

如果你们单位的服务器知道(它得查自己的一本单子——数据库),它就会给你的操作系统说:是220.181.6.182。

然后你的操作系统就给你的浏览器说:www.baidu.com的IP地址是220.181.6.182。

然后你的浏览器才给主机IP地址为220.181.6.182 的机子说:嘿,老兄找你才真不容易啊。

但是如果你们单位的服务器不知道www.baidu.com的IP地址呢?它会对你们当地的电信公司的一台服务器说:兄弟,刚刚有个家伙问我……直至知道220.181.6.182 再一个接一个的传回来到你的浏览器。

这个究竟是怎么回事呢?咋这么麻烦呢?要说清楚这个我们就得翻翻历史了。

1969年美国国防部孵化出了世界上第一个网络名叫APARNET(阿帕网)即当前因特网(Internet)的老祖宗(但是他在1990年的时候就寿终正寝了,也就是说因特网的老祖宗在90就已经入土为安了,享年21岁)。当时这个网络里面只有几百台计算机。别小看这几百台。他们是可以通信的,计算机不是只认识0和1两种状态吗怎么通信?一个1或0可以表示2种状态,两个1或0有四种组合可表示4种状态,即n个1或0的组合就会有2n 种状态。于是人们就用了32位0或1的组合来表示网络上另一台计算机的位置那么理论上可以表示的计算机数远远大于1000万台,这样2n对于网络上的几百台电脑来说绰绰有余。(他们不曾料到现在中国的联网的用户都早已超过5000万)哦……他们是不是当时上网就输入一个32位长的01010000111111……呢?不,他们没那么傻。他们把这32位分成4段,每段换算成十进制数,两段的中间用“.”号分开,就形成了IP地址。他们上网只需要输入IP地址(如:12.42.189.223)就可以上网了。这就形成了TCP/IP协议,这是1983年的事情。诶,这也够折磨他们的呢,为什么这么说呢,因为他们的记忆力不是很好。每次访问新主机时都要翻书,查一下IP地址。你猜他会这样“勤快”吗?勤劳是中华民族的传统美德,而他们会“偷懒”。他们想为什么不给每台计算机起个好听的名字呢,叫我去查IP地址,你说我容易吗,上辈子欠你的?大家弄出个好的方案,在每台计算机上建一个文件统一叫他“hosts”让它帮我们去把好听的名字给呆板的IP联系起来,我叫它去www.baidu.com它就给我自动去220.181.6.182 。

于是hosts这个光荣传统得到了发扬和光大(你若不知道也很正常),Hosts翻译成汉语就是“主机们”。几乎所有操作系统中都有hosts这个文件windows系统在C:/WINDOWS/system32/drivers/etc/hosts目录中,可以用记事本打开和修改。Linux在/etc/hosts目录中可以用vi打开修改。在windows的hosts中他这样写道

# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#这是Hosts文件在windows系统使用微软的TCP/IP协议时的一个示例
#
# This file contains the mappings of IP addresses to host names. 这个文件包含了主机名到IP地 址的映射
#Each entry should be kept on an individual line.
#每个条目应单独写在一行,也就是说1.0.0.2 www.a.com 1.1.1.1 www.b.cn是不推荐的写法
#The IP address should be placed in the first column followed by the corresponding host name.
#IP地址应该写在对应的主机名的前面,也就是说不要写成www.c.com 111.0.122.222
# The IP address and the host name should be separated by at least one space.
#IP地址跟主机名之间至少要有一个空格,即可写成111.0.122.222 www.c.com但不能写成111.0.122.222www.c.com
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#另外,你还想写点注释请单独写在一行并以“#”开始,或者直接跟在主机名屁股上但是还是要“#”开头,说明#号后面是注解。
那么这里面有一条默认的记录是这样写的:
127.0.0.1 localhost
翻译成汉语就是名叫“本地主机”的电脑的IP地址是127.0.0.1

假设现在是这样,你买台电脑回家,你做的第一件事就是装系统,然后再这个所谓的Hosts文件中输入每个主机名和他对应的IP地址,我相信你会抓狂的,好吧你可以去别人的电脑去复制。但是还要告诉你,你的Hosts里面内容越多你上网的速度越慢时,你就不会这么玩了。那么怎么办?你放心刚才说了有DNS服务器帮忙了嘛,DNS:Domain Name System域名系统。它负责将域名翻译成IP地址。什么是域名,就像www.baidu.com或者www.bbc.co.uk就是域名,它跟主机名不同,主机名可以写成supper就可以了,但是域名就不行,不需有一个点“.”,主机名是给人和你的电脑看的,而域名是给人和DNS服务器看的。

好,现在你理解了域名、主机名、IP地址的关系了。问题是世界上所有的机子都可以访问一个IP地址为127.0.0.1的电脑,按照上面的解释,这样不是你的电脑会被好多人访问吗?你放心,他们访问127.0.0.1是跑不到你电脑里面去的。

这是为什么呢?

因为历史上出现过这样一种情况,人们把IP地址分类使用其中

A类地址为1.0.0.1到126.225.225.224

中间缺127.x.x.x

D类地址为和E类地址为

其中127.x.x.x用来大家做回环测试用,也就是说,系统发现实127开头的IP地址,系统就不放到网络上去找了,直接找自己

哈哈任何人想用127开头的IP地址上网他都是不会成功的,不仅操作系统部允许,网络设备也不允许。

C类地址为192.0.0.1到223.225.225.224

B类地址为128.1.0.1到191.225.225.224
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: