IP位址是什麼?網路地址的運作與IPv4、IPv6
IP位址是在網際網路上傳送資料時,表示目的地和寄件者的號碼。廣泛使用的IPv4只有約43億個號碼,全世界最上游的庫存在2011年就已用完。因此,家用路由器讓多台設備共用1個號碼,同時號碼多得多的IPv6也在逐步普及。
這篇文章可以了解
- IP位址的形式(IPv4、IPv6),以及數字的讀法
- IPv4不夠用的原因,以及家用路由器讓設備共用號碼的方式(NAPT)
- 自動分配號碼的機制(DHCP),以及號碼「前半」和「後半」的作用
- 從IP位址能知道與不能知道的事
先備知識:不需要。如果知道「網際網路怎麼傳送資料」(封包與路由器),會更容易閱讀。
生活中的例子
打開手機Wi-Fi的詳細設定,會看到像「192.168.1.10」這樣的數字。另一方面,在顯示「你的IP位址」的網站上,出現的卻是完全不同的數字。明明是同一支手機,為什麼會有2個號碼呢?
新聞裡也常聽到「從IP位址查出發文者」的說法。光纖網路的廣告上,則寫著「支援IPv6」。這篇文章會依序說明這些場景背後的號碼運作方式。
IP位址是「封包的目的地號碼」
在網際網路上,資料會分成小塊再傳送。這種小塊稱為封包。封包上寫著表示目的地和寄件者的號碼。這個號碼就是IP位址。
途中的路由器(在網路之間轉送封包的設備),會看目的地的號碼,選擇下一個去處。轉送的方式,在「網際網路怎麼傳送資料?」中說明。這篇文章則把焦點放在號碼本身。
IP位址不是分配給人,而是分配給每一個連上網路的連接點。以手機來說,用Wi-Fi時和用行動網路時,會使用不同的號碼。即使是同一台設備,連線的地方改變,號碼也會跟著改變。
IPv4的形式:4個0~255的數
現在廣泛使用的形式稱為IPv4。IPv4位址寫成「203.0.113.25」這樣,用點隔開4個數。每個數都在0到255之間。
為什麼到255為止呢?在電腦裡,數是用0和1的排列來表示。這種0或1的1位數,稱為「位元」。8個位元能表示的,是2連乘8次的256種,也就是0~255(0和1的說明請看「電腦怎麼用0和1計算?」)。
IPv4位址由4個8位元的數組成,合計32位元。能做出的號碼是2連乘32次,約43億個。其中一部分保留給特殊用途,所以能分配給設備的號碼還更少。
IPv4為什麼不夠用?
IPv4的規則整理成文件,是在1981年。當時連線的主要是研究機構等單位的電腦,43億是很大的數字。但現在,世界人口(依聯合國資料,2022年為80億人)遠比號碼的數量多。如果1個人同時有手機和電腦,就更不夠了。
提供網際網路連線的公司,稱為網際網路服務供應商(ISP)。號碼會經過管理機構一層一層分配到ISP。最上層是負責全世界的IANA,下面是各地區的機構,例如負責亞太地區的APNIC。以日本為例,一般的順序是IANA、APNIC,再到日本的JPNIC。
2011年2月,IANA把最後剩下的號碼分配給各地區的機構,手上的庫存就沒有了。接著在2011年4月15日,APNIC(以及日本的JPNIC)也結束了一般的分配。因為剩下的只有最後一批(約1,677萬個),之後只能非常少量地分配。
從那之後,就靠回收不再使用的號碼、在組織之間轉讓等方式勉強應付。根本的解決辦法是IPv6,但在那之前,先來看看支撐現在家庭上網的巧思。
只在家中使用的號碼:私有IP位址
節省號碼的第1個巧思,是規定只在家裡或公司內部使用的號碼。這稱為「私有IP位址」。1996年的規則(RFC 1918)訂出了下面3個範圍。
- 10.0.0.0 ~ 10.255.255.255
- 172.16.0.0 ~ 172.31.255.255
- 192.168.0.0 ~ 192.168.255.255
私有IP位址在任何家庭或公司都能自由使用。你家的手機和隔壁家的手機,都是「192.168.1.10」也沒關係。不過,這些號碼不能當作網際網路上的目的地。
相對於此,在網際網路上不會重複、一個一個分配的號碼,稱為「公有IP位址」(也稱全球位址)。家庭的情況,多半由ISP分配1個給家用路由器(也有和其他用戶共用的方式)。開頭提到的「你的IP位址」網站顯示的,就是這個對外的號碼。有時也會顯示後面說明的IPv6號碼。
大家共用1個號碼:NAPT
家中的設備只有私有IP位址的話,無法和網際網路通訊。因此,家用路由器會把送出去的封包上寄件者的號碼,改寫成公有IP位址。這種改寫稱為NAT。
不過,只改寫號碼的話,回覆的封包回來時,就不知道該送回哪台設備。所以路由器還會用另一個號碼。這是在設備內部區分「哪一條通訊」的號碼,稱為連接埠號碼。
路由器會為每一條往外的通訊加上不同的連接埠號碼,並把對應關係記在表上。回覆送到時,就查表改回原本的設備和號碼。這種把IP位址和連接埠號碼成對改寫的方式,稱為NAPT。家用路由器說的「NAT」,通常就是指NAPT。
在行動網路等線路上,電信業者那一端有時也會做同樣的改寫。這稱為電信級NAT。這種情況下,1個公有IP位址會同時被許多用戶使用。
號碼由誰分配?DHCP
朋友的手機連上家裡的Wi-Fi後,馬上就能上網。不需要手動設定號碼,是因為家用路由器會自動分配號碼。這個機制稱為DHCP。
手機一連上,就會發出「請給我號碼」的請求。路由器選出還沒人用的號碼,加上可以使用的期限後借出。同時,也會告訴手機作為網路出口的路由器號碼,以及把名稱轉成號碼的伺服器號碼。
因為借出有期限,一段時間沒用的號碼,可能會轉給別的設備。即使是同一支手機,家中的號碼也可能改變,就是這個原因。家用路由器拿到的公有IP位址,也多半是ISP自動分配的號碼。重新連線時可能會改變(也有出租固定號碼的服務)。
號碼的前半與後半:網路部分與主機部分
IP位址的前半和後半,作用不同。前半表示「哪一個網路」,後半表示「其中的哪一台設備」。前半稱為網路部分,後半稱為主機部分(主機是指連上網路的設備)。
分界的位置,用「/24」這樣表示從前面算起幾個位元是網路部分。這種寫法稱為CIDR表示法。家裡常用的 /24,就是前面24個位元,也就是前3個數是網路部分。
例如「192.168.1.0/24」中,192.168.1.1~192.168.1.254 可以分配給設備。結尾是0和255的號碼,分別代表網路本身和「給所有人」,所以不分配給設備。能分配的號碼,包含路由器自己在內共254個。
如果目的地的網路部分和自己相同,手機就直接傳給對方。如果不同,就交給網路出口的路由器。這個出口稱為預設閘道。
把同樣的分界寫成「255.255.255.0」的形式,就是子網路遮罩。在Wi-Fi的詳細設定裡常常看到。改變分界時的計算,可以用「IP位址與子網路計算」試試看。
IPv6:把號碼擴大到128位元
為了從根本解決IPv4的不足而設計的,就是IPv6。它把位址的長度從32位元擴大到128位元。能做出的號碼約有3.4×1038個,是「1兆的1兆倍的1兆倍」再乘上約340倍。
因為位數很多,寫法也改變了。IPv6使用十六進位。十六進位是用0~9和a~f共16種符號來寫數的方法(a代表10,f代表15)。
把128位元每16位元分成1組,共8組,每組寫成4位數的十六進位,再用冒號(:)連起來。直接寫會很長,所以有省略的規則。每組開頭的0可以省略(0db8 → db8)。另外,連續全是0的組,可以合併寫成「::」。
- 不省略:2001:0db8:0000:0000:0000:0000:0000:0001
- 省略開頭的0:2001:db8:0:0:0:0:0:1
- 用「::」合併:2001:db8::1
「::」在1個位址中只能用1次。如果有2處,就無法知道每一處各代表幾組0。
IPv6和IPv4的封包形式不同,直接的話無法互相通訊。所以現在一般的做法是,1台設備同時擁有兩種號碼,配合對方分開使用。差異整理在「IPv4與IPv6的差異」的表格中。
依Google的統計,用IPv6連到Google的使用者比例,在2026年3月28日達到50.1%。這是2008年開始記錄以來,第一次超過一半的日子。不過這是單日的數值,用其他方法測量,也有約4成的結果。各國的差異也很大,只能用IPv4的設備和網站仍然很多。
DNS:從名稱查出號碼
平常我們不會直接輸入IP位址。像「www.example.com」這樣的名稱,會先透過DNS這個機制轉成號碼,再開始通訊。1個名稱常常同時登記了IPv4和IPv6的號碼,這時設備會選擇能用的那一個。
IP位址能知道與不能知道的事
能知道的:哪個組織的號碼、大概的地區
每個號碼範圍分配給哪個組織,都是公開的。所以從號碼,大多能知道是哪家ISP或公司的號碼。也有從號碼推測位置的服務,國家或大致的地區常常是準的。
不能知道的:姓名或住址
從號碼無法知道使用者的姓名或住址。美國的MaxMind公司,是販賣位置推測資料的公司。連這家公司也說明,它的資料沒有準確到能特定出住戶、門牌或個人。如果使用經由別處伺服器傳送通訊的VPN,對方看到的會是中繼伺服器的號碼。
可以追查紀錄的情況
另一方面,ISP會記錄在什麼時候、把哪個號碼分配給哪個用戶(保存期間有限)。只要有依法進行的程序,有時就能從這些紀錄查出用戶。以日本為例,在網路上權利受到侵害的人,符合條件時,可以要求揭露發文所用線路的申辦人資料等。依據是日本的《資訊流通平台處理法》(2025年4月由《網路服務提供者責任限制法》改名)。
多人共用1個號碼時,除了時間,還需要連接埠號碼的紀錄。因此,制定網際網路技術標準的組織IETF,在2011年發表了關於記錄方式的文件。文件建議伺服器也要記下對方的連接埠號碼和正確的時間。另外,能追查到的是線路的申辦人,不一定是實際操作的人。
常見的誤解
誤解:IP位址是一直跟著人或設備的號碼
實際上,它是連上網路時,分配給連接點的號碼。連線的地方改變,號碼就會改變;DHCP借出期限到了,或和ISP重新連線時,也可能改變。在電信級NAT下,1個號碼會同時被許多人使用。
即使是IPv6,很多手機和電腦為了不容易被追蹤,也會定期改變號碼的後半。這稱為暫時位址。因為「網路上的地址」這種說法,常被以為像住家地址一樣不會變,但實際上它是經常改變的號碼。
誤解:IPv6是IPv4的高速版
實際上,主要的差異在於號碼的數量和形式。它是和IPv4無法直接互通的另一套規則。改用IPv6,不一定會讓通訊變快。
以日本為例,使用NTT「FLET'S光」等光纖服務的人,常覺得「改用IPv6就變快了」,多半是因為連線方式不同。傳統的PPPoE方式,會經過晚上等使用人數多時容易壅塞的設備。新的IPoE方式,則不必經過那些設備。連往IPv4網站的通訊,也有放到IPoE路徑上傳送的方式,因此也可能變快。變快的原因不是號碼的形式,而是路徑改變了。
誤解:像 192.168.x.x 這樣的號碼,在全世界只有1個
實際上,私有IP位址在全世界數不清的家庭和公司中,都使用同樣的號碼。你家的「192.168.1.10」和隔壁家的「192.168.1.10」是不同的設備。所以,從網際網路的另一端,無法把封包送到這個號碼。
從數字來看
| 項目 | 數字 | 比較 |
|---|---|---|
| IPv4的長度和數量 | 32位元,約43億 | 比世界人口(2022年80億人)還少 |
| IPv6的長度和數量 | 128位元,約3.4×1038 | IPv4的約7.9×1028倍 |
| IPv4中1個數的範圍 | 0~255 | 8位元有256種 |
| /24 能分配給設備的號碼 | 254個 | 256個扣掉2個 |
| 私有IP位址 10.0.0.0/8 | 約1,677萬個 | 最大的範圍 |
| IANA庫存用完的時間 | 2011年2月 | 對各地區的最後一次分配 |
| APNIC、JPNIC結束一般分配 | 2011年4月15日 | 亞太地區和日本 |
| 用IPv6連到Google的使用者 | 50.1% | 2026年3月28日的單日數值。第一次超過一半 |
進一步學習
- 用表格看差異:DHCPv6與SLAAC的差異(IPv6自動決定號碼的2種方法)
- 用計算試試看:進位轉換與二補數(二進位、十六進位、十進位的轉換。試著用二進位看IP位址的數)
- 下一步的名詞:MAC位址(送到相鄰設備用的號碼)、ARP(查詢MAC位址的機制)
- 安全相關的名詞:防火牆(限制通訊進出的機制。NAT不能取代它)
- 接下來閱讀:號碼把資料送到之後,通訊的內容要怎麼保護?「HTTPS是什麼?鎖頭圖示能保護與不能保護的事」