【計算計網絡】localhost,和127.0.0.1和本機IP三者的區別?

localhost,和127.0.0.1和本機IP三者的區別?


本篇文章:

       對於網絡方面的知識,本身是一竅不通,因而打算開始學習網絡,遇到了一個問題,如何區別 localhost127.0.0.1 和本機IP這三者?因而,在百度上面學習了一番,寫下這篇文章,記錄下本身的學習成果。web


---------------------------------------------------正文---------------------------------------------------

① 127.0.0.1:

1、什麼是環回地址??與 127.0.0.1 的區別呢??

環回地址: 主機用於向自身發送通訊的一個特殊地址(也就是一個特殊的目的地址)。shell

能夠這麼說:同一臺主機上的兩項服務若使用環回地址而非分配的主機地址,就能夠繞開 TCP/IP協議棧 的下層。(也就是說:不用再經過什麼鏈路層,物理層,以太網傳出去了,而是能夠直接在本身的 網絡層,運輸層 進行處理了)網絡

IPv4的環回地址爲: 127.0.0.0127.255.255.255 都是環回地址(只是有兩個特殊的保留),此地址中的任何地址都不會出如今網絡中svg

網絡號爲127的地址 根本就不是一個網絡地址(由於產生的 IP 數據報就不會到達外部網絡接口中,是不離開主機的包)oop

當操做系統初始化本機的 TCP/IP 協議棧時,設置協議棧自己的 IP 地址爲 127.0.0.1(保留地址),並注入路由表 。當IP層接收到目的地址爲 127.0.0.1(準確的說是:網絡號爲 127IP )的數據包時,不調用網卡驅動進行二次封裝,而是當即轉發到本機 IP 層進行處理,因爲不涉及底層操做。所以,ping 127.0.0.1 通常做爲測試本機 TCP/IP 協議棧正常與否的判斷之一。學習

因此說:127.0.0.1 是保留地址之一,只是被常常的使用,來檢驗本機 TCP/IP 協議棧而已測試

若是咱們能夠 ping 通的話,就說明:本機的網卡和 IP 協議安裝都沒有問題。(跟咱們當前主機有沒有聯網沒有一點關係)spa

127.0.0.1 這個地址一般分配給 loopback 接口。loopback 是一個特殊的網絡接口(可理解成虛擬網卡),用於本機中各個應用之間的網絡交互。只要操做系統的網絡組件是正常的,loopback 就能工做。Windows 中看不到這個接口,Linux 中這個接口叫 lo:操作系統

#ifconfig
eth0    Link encap:Ethernet hwaddr 00:00:00:00:00:00
            inet addr :192.168.0.1 Bcase:192.168.0.255 Mask:255.255.255.0
           ......
lo        Link encap:Local Loopback
           inetaddr: 127.0.0.1 Mask: 255.0.0.0
           ......

② localhost

localhost: 首先是一個域名(如同:www.baidu.com ),也是本機地址,它能夠被配置爲任意的 IP 地址(也就是說,能夠經過 hosts 這個文件進行更改的),不過一般狀況下都指向:(以下)
IPv4: 指向 127.0.0.1.net

IPv6: 指向 [::1]

cmd 輸入: ping localhost ,便可看到對應的主機地址

③ IP

「本機地址」並非一個規範的名詞。一般狀況下,指的是「本機物理網卡所綁定的網絡協議地址」。因爲目前經常使用網絡協議只剩下了 IPV4,IPX/Apple Tak 消失了,IPV6 還沒普及,因此一般僅指 IP 地址甚至 ipv4 地址。通常狀況下,不會把 127.0.0.1 看成本機地址。

本機地址是與具體的網絡接口綁定的。好比以太網卡、無線網卡或者 PPP/PPPoE 撥號網絡的虛擬網卡,想要正常工做都要綁定一個地址,不然其餘設備就不知道如何訪問它。

局域網內能夠設置固定的IP地址,也能夠隨機獲得不一樣的IP地址,能夠人爲控制。

在互聯網通常都是電信商隨機分配一個IP,每次撥號的IP地址都是不一樣的,是不可控的。從新撥號上網或重啓路由器,IP地址就會產生變化。

IP地址是可變的,電腦的MAC地址纔是不變的。

  • localhost 是個域名,不是地址,它能夠被配置爲任意的 IP 地址,不過一般狀況下都指向 127.0.0.1(ipv4)::1 (ipv6)
  • 整個 127. 網段一般被用做 loopback 網絡接口的默認地址,按慣例一般設置爲 127.0.0.1。這個地址在其餘計算機上不能訪問,就算你想訪問,訪問的也是本身,由於每臺帶有 TCP/IP 協議棧的設備基本上都有 localhost/127.0.0.1。
  • 本機地址一般指的是綁定在物理或虛擬網絡接口上的 IP 地址,可供其餘設備訪問到。

最後,從開發度來看

  • localhost 是個域名,性質跟 「www.baidu.com」 差很少。不能直接綁定套接字,必須先 gethostbyname 轉成 IP 才能綁定。
  • 127.0.0.1 是綁定在 loopback 接口上的地址,若是服務端套接字綁定在它上面,你的客戶端程序就只能在本機訪問。

參考連接:

https://blog.csdn.net/weixin_43970743/article/details/89670998

做者:文小白