IPNixa / 地址工具

IP地址转换:IP转十进制、二进制、十六进制

粘贴任意写法的IP地址、数字或整条链接。转换器会自动识别格式,并排显示所有表示方式,还能揭示http://3232235777这类伪装链接背后的真实地址。

  • 自动识别点分、十进制、十六进制、二进制和八进制
  • 揭示伪装链接背后的真实IP
  • 批量转换并导出CSV,附Excel、SQL和代码示例
试试示例

计算在此浏览器中进行,不会查询地址或向服务器发送请求。

就绪。输入内容不会添加到URL或分析数据中。

批量转换

使用方法

  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位值。压缩改变的是写法,而不是网络端点。

支持私有地址和文档示例地址吗?

支持。转换是本地数学计算,因此私有地址、环回地址和文档示例地址都可以输入。不会向该地址发出任何请求。

其他地址工具