IPNixa / 位址工具

IP位址轉換器:十進位、二進位與十六進位

貼上任何寫法的IP位址、數字或整條連結。轉換器會自動判斷格式,並排顯示所有表示方式,還能揭露http://3232235777這類偽裝連結背後的真實位址。

  • 自動判斷點分、十進位、十六進位、二進位與八進位
  • 揭露偽裝連結背後的真實IP
  • 批次轉換並匯出CSV,附Excel、SQL與程式範例
試試範例

計算在此瀏覽器中進行,不會查詢位址或傳送伺服器請求。

就緒。輸入內容不會加入網址或分析資料。

批次轉換

使用方式

  1. 貼上IP位址、數字或連結,輸入時就會判斷格式。
  2. 並排查看所有表示方式,包括八進位與每個八位元組的二進位。
  3. 一次轉換整份清單,或複製Excel、SQL、Python或JavaScript用的公式。

解讀結果

IPv4位址有32位元,IPv6位址有128位元。不同的文字格式可以表示同一個值。標準IPv6使用小寫十六進位,並壓縮最長的連續全零群組;長度相同時壓縮第一段。展開形式會顯示全部八組。十進位轉換使用精確整數,而非浮點數捨入。轉換無法識別裝置、定位IP,也不會讓僅支援IPv4的連線支援IPv6。

IP轉十進位:Excel、SQL與程式碼

在常用工具中完成同樣的轉換。每個範例都會把192.168.1.1轉成3232235777,再轉回來。

Excel
=SUMPRODUCT(--MID(SUBSTITUTE(A1,".",REPT(" ",99)),{1,100,199,298},99)*256^{3,2,1,0})
Google Sheets
=SUMPRODUCT(SPLIT(A1,".")*256^{3,2,1,0})
MySQL / MariaDB
SELECT INET_ATON('192.168.1.1'), INET_NTOA(3232235777);
PostgreSQL
SELECT '192.168.1.1'::inet - '0.0.0.0'::inet, '0.0.0.0'::inet + 3232235777;
Python
import ipaddress
int(ipaddress.ip_address('192.168.1.1'))  # 3232235777
str(ipaddress.ip_address(3232235777))     # '192.168.1.1'
JavaScript
'192.168.1.1'.split('.').reduce((n, o) => n * 256 + Number(o), 0); // 3232235777
[24, 16, 8, 0].map(s => (3232235777 >>> s) & 255).join('.');      // '192.168.1.1'

常見問題

如何把十進位數字轉回IP位址?

貼上數字即可,例如3232235777。不超過4,294,967,295的數字會像瀏覽器一樣以IPv4讀取,更大的數字以IPv6讀取。若要指定位址類型,請在「輸入格式」中選擇。

為什麼http://3232235777這樣的連結也能開啟網站?

瀏覽器接受以一個數字、十六進位或八進位書寫的IPv4位址,這些寫法都會開啟192.168.1.1。它們常被用來隱藏連結的真正去向,可將可疑連結貼到這裡查看真實位址。

壓縮後的IPv6位址是另一個位址嗎?

不是。例如,2001:db8::1與其完整展開形式包含相同的128位元值。壓縮改變的是寫法,而不是網路端點。

支援私有位址和文件範例位址嗎?

支援。轉換是本機數學運算,因此可以輸入私有位址、回送位址和文件範例位址,且不會對該位址發出任何請求。

其他位址工具