IP 地址转十进制
把 IPv4 或 IPv6 地址转换为十进制整数(192.168.1.1 = 3232235777),也可以把整数还原为地址。显示分步计算,并支持批量转换多行。
IPv4 地址其实就是一个 32 位的数,像 192.168.1.1 这样的点分写法只是把它的四个字节分开写出来。这个转换器可以把 IPv4 和 IPv6 地址转换为一个十进制整数——这正是 MySQL 的 INET_ATON() 返回的形式,也用于 IP 段表和某些防火墙导出文件——也可以把整数还原为地址。粘贴一个列表即可批量转换。
使用方法
- 输入或粘贴 IP 地址,例如 192.168.1.1 或 2001:db8::1。
- 反向转换时,输入一个整数,例如 3232235777。
- 添加更多行即可转换列表,每一行在表格中各占一行。
计算公式
decimal = a × 256³ + b × 256² + c × 256 + d
对于 IPv4 地址 a.b.c.d,256³ = 16,777,216,256² = 65,536。IPv6 的做法相同,只是有八个 16 位分组,每组乘以 65,536 的相应次幂,得到最多 39 位的数(2¹²⁸ − 1)。还原时,反复除以 256(或 65,536)并保留余数。IPv4 中带前导零的八位字节按十进制读取。成对的 IPv6 方括号可以接受;区域标识符必须自行去掉。
示例
以 192.168.1.1 为例:192 × 16,777,216 = 3,221,225,472;168 × 65,536 = 11,010,048;1 × 256 = 256;再加上最后的 1。总和为 3232235777。按有符号 32 位整数读取,同样的位是 −1062731519。输入 3232235777 则返回 192.168.1.1。
常见问题
127.0.0.1 的十进制是多少?
是 2130706433,由 127 × 16,777,216 + 1 得出。一些 URL 解析器和网络工具接受数字形式的主机,但支持情况不一,配置中用点分十进制更清晰。
数据库里应该怎样存储 IP 地址?
IPv4 可使用无符号 32 位整数列(MySQL 的 INT UNSIGNED),能容纳所有地址,范围查询也很快,并可用 INET_ATON() 和 INET_NTOA() 双向转换。IPv6 需要 128 位,可配合 INET6_ATON() 使用 VARBINARY(16),或使用 PostgreSQL 的 inet 类型。
为什么别的工具显示的是负数?
因为它把值存成了有符号 32 位整数。从 128.0.0.0 起的地址最高位为 1,所以显示为负数;加上 4,294,967,296 即得到无符号的值。
可以带前导零吗?
本工具把 010 读作十。一些较老的 C 函数会把前导 0 当作八进制,所以在真实的配置文件中请避免前导零。
资料来源
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/ip-to-decimal-tool/
引用此工具
kakaoCalc. (2026, November 8). IP 地址转十进制. https://kakao.mobile/zh/tools/ip-to-decimal-tool/
“IP 地址转十进制.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/ip-to-decimal-tool/.