1. 程式人生 > >為什麼baidu查到的ip和ipconfig查到的不一樣;詳解公網Ip和私網ip;詳解網路分類ABC

為什麼baidu查到的ip和ipconfig查到的不一樣;詳解公網Ip和私網ip;詳解網路分類ABC

IP可以分為Public IP 和 Private IP,出現這種規劃的原因在於IPv4所能表示的IP太少而電腦太多以至於不夠用,然而只有Public IP才能直接連線上網路,所以對於那些公司,學校,政府機構等場所,就可以集中使用私有的IP進行管理,而大家可以共用一個IP去連線上公網,這樣,就省下了許多寶貴的Public IP。你有沒有發現,你每次使用ipconfig查到的地址,要麼就是172.開頭的,要麼就是192.開頭的,為什麼?難道沒有其他開頭的嘛,答:基本沒有。因為一個Ip分給我們一個Pc端太不划算了,一般都是很多人共享一個ip,我們用ipconfig查詢到的其實只是我們的區域網Ip,172.開頭的意味著我們是B型別的區域網,以192.開頭的意味著你是c類的區域網。所以我們一直都沒有接觸到正真的ip,我們一直打交道的都是私有ip又叫private ip.

1.引出問題

        很多朋友常常聽到什麼真實IP,實體 IP, 虛擬 IP, 假的 IP...,其實沒有那麼複雜,在看linux私房菜的時候終於明白了這之間的區別。在上學的時候,學校老師也並不會涉及到這方面的內容。

首先,引出問題,我們分別在百度搜ip查詢,查詢到本機的public ip (後文會介紹到這個概念)如左圖,再利用ipconfig查詢到自身ip如右圖。我們能看到這兩個地址是不同的,那麼不是說,每個主機都只有一個ip地址麼,為什麼我們查到的兩個Ip地址不一樣呢。

好的,我們通過上面這兩幅圖能夠看到左邊Ip是117.158.134.217 而右邊的Ip地址是172.18.251.129 現在我們要解釋的問題就是為什麼這兩個Ip是不同的呢。

ipconfig查出來的是你本機的IP地址,也就是內網私有地址,此類地址僅在區域網使用,不能聯通外網。
百度查出來的地址是你上網的共有地址,也許並不是你主機的地址,而是電信或聯通分給你的地址,用於連線網際網路。

也就是我們要引出私網Ip和公網IP這兩個概念,下文會有提示。

首先我們要介紹ip的分類,因為ip常見有5種分類,而我們在實際生活中和生產中一般只會遇到A,B,C這三類地址,所以我就詳細解釋下這三類ip地址,我們需要知道這三種是怎麼劃分的。

2.IP地址分類

為了便於定址以及層次化構造網路,每個IP地址包括兩個標識碼(ID),即網路ID和主機ID。同一個物理網路上的所有主機都使用同一個網路ID,網路上的一個主機(包括網路上工作站,伺服器和路由器等)有一個主機ID與其對應。Internet委員會定義了5種IP地址型別以適合不同容量的網路,即A類~E類。這裡寫圖片描述

這裡寫圖片描述

類別預設子網掩碼支援主機數
A255.0.0.02^24-2
B255.255.0.02^16-2
C255.255.255.02^8-2

   3.下面我們來介紹public ip和private ip的概念和區別:

  • Public IP : 公共 IP ,經由 INTERNIC 所統一規劃的 IP,有這種 IP 才可以連上 Internet ;
  • Private IP : 私有 IP 或保留 IP,不能直接連上 Internet 的 IP ,主要用於區域網絡內的主機聯機規劃。

早在 IPv4 規劃的時候就擔心 IP 會有不足的情況,而且為了應付某些企業內部的網路設定,於是就有了私有IP (Private IP) 的產生了。私有 IP 也分別在 A, B, C 三個 Class 當中各保留一段作為私有 IP 網段,那就是:

  • Class A:10.0.0.0    - 10.255.255.255
  • Class B:172.16.0.0  - 172.31.255.255
  • Class C:192.168.0.0 - 192.168.255.255

      由於這三段 Class 的 IP 是預留使用的,所以並不能直接作為Internet 上面的連線之用,不然的話,到處就都有相同的IP 囉!那怎麼行!網路豈不混亂?所以囉,這三個 IP 網段就只做為內部私有網域的IP 溝通之用。一般說來,我們用Ipcofig是無法查到公網ip的,大多數時候,你使用ipconfig查到的一般就只是以172.開頭的b類私有Ip,或者以192.168開頭的c類私有Ip.簡單的說,s私有ip有底下的幾個限制:

  • 私有 IP 的路由資訊不能對外散播 (只能存在內部網路);
  • 使用私有 IP 作為來源或目的地址的封包,不能透過 Internet 來轉送 (不然網路會混亂);
  • 關於私有 IP 的參考紀錄(如 DNS),只能限於內部網路使用 (一樣的原理啦)

這個私有 IP 有什麼好處呢?由於他的私有路由不能對外直接提供資訊,所以,你的內部網路將不會直接被 Internet 上面的 Cracker 所攻擊!但是,你也就無法以私有 IP 來『直接上網』囉!因此相當適合一些尚未具有Public IP 的企業內部用來規劃其網路之設定!否則當你隨便指定一些可能是Public IP 的網段來規劃你企業內部的網路設定時,萬一哪一天真的連上Internet 了,那麼豈不是可能會造成跟 Internet 上面的 Public IP 相同了嗎?

只有公網ip是能夠連線網際網路的,私網IP 一般只用作區域網
類別IP範圍私有地址範圍保留地址
A1.0.0.0~126.255.255.25510.0.0.0~10.255.255.255127.0.0.0~127.255.255.255
B128.0.0.0~191.255.255.255172.16.0.0~172.31.255.255169.254.0.0~169.254.255.255
C192.0.0.0~223.255.255.255192.168.0.0~192.168.255.255

總結:

我們能夠上網靠的是isp組織分給我們的Ip地址,但是這個ip地址一般不是給個人的,一般都是給一個單位,一個區域的,也就是說我們實際上能接觸到的一般都是私有地址,即我們用ipconig查到的都是私有地址,也就相當於區域網內的ip地址,當我們真正聯網時,會先把資料傳送到路由,然後再由路由進行處理實現真正的聯網操作,路由的地址才是真正聯網的Ip地址,也就是pubilc ip,而我們在自己電腦上查到的都是私有ip

舉個例子,我們在學校或者查到的Ip一般都是172.開頭的,比如上圖我的地址,那就是在學校裡檢測到的ip地址,通常是b類地址,而我們在家裡一般用的都是c類地址。也就是一般是192.168開頭的地址。這個大家可以自行去驗證一下。如果看完所有的你還有疑問,可以去參考知乎上有關該問題的回答,下面是網址:

整理上網流程:

我們重新整理一下我們上網的路線,看下圖,移動公司分給我們的ip是117.158.134.217,這是我們這一棟樓能連上網的公網Ip,那麼如何讓這一個ip使學校裡面的所有人都能使用呢,我們開始重新劃分區域網。上文中,我們知B類私有地址範圍是:172.16.0.0~172.31.255.255,我們學校採取的就是這種劃分方法,所以我的私網ip地址就是172.18.251.129.那麼怎麼連上網的呢,我們通過私網ip然後把我們的需求和要傳送的資料發給路由器,然後路由器對接網路,再把資料傳送給Internet.然後internet傳送資料到我們學校的路由,然後路由在通過我的私網ip傳送給我,這就是我們真實上網的流程。

遺留問題:

大家可能也注意到了一個問題,就是我們在百度查到的ip是117開頭的,也就是說其實是a類,但是我們這邊私網Ip卻是172開頭的,是b類的私有ip地址,那麼問題來了?117開頭的IP地址是如何轉換成172開頭的私有ip的呢?他們之間一定有一個轉換關係,構成了一個公網和私網之間的一個對映。這個關係是什麼呢???

自問自答:

在查閱了多方資料之後,這個問題其實就是私網Ip和公網Ip的轉換這個問題,其實利用到了nat轉換技術,將172.16.xxx.xxx~172.31.xxx.xxx轉換到公網ip,也就是我圖中所示的那個鄭州的117開頭的ip。我們的私網ip是自成體系的,在合理的建設完私網ip後,我們只需利用nat技術將公網ip和私網ip做一個轉換即可。大概就跟下圖所示一樣,二樓使用的是172.16.xx.xx開頭的網址,三樓是172.17.xx.xx,四樓是172.18.xx.xx,從圖中可以有一個很清晰地認識

後記:

隨著學校換地方,我們的Ip也發生了一些微妙的變化。我們搬到了一個新的環境,還沒搭建起伺服器。當我使用Ipconfig命令來查詢自己的ip地址的時候,我們發現了一個奇怪的事情,我們獲取到的ip地址是一個以169開頭的ip地址,上文已經提到過我們正常情況下獲到的地址應該是一個以172.16~172.31這之間開頭的,那麼為什麼會出現169開頭的呢?

169開頭的是一個保留地址,是本地連線受限時系統自動分配的ip沒有什麼實際的意義,出現這種情況可能是伺服器還沒搭建好。果然,等我們重新搭建好了代理伺服器之後,我們的網址又變回了現在的172.18開頭的網址。