LocalHost爲何會是127.0.0.1的地址呢

      不妨做個測試,在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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章