IPv4 地址转换器

网络

把 IPv4 地址在点分十进制、十进制、十六进制与二进制间双向转换,并生成反向 DNS 记录。在点分十进制、十进制整数、十六进制与二进制之间双向转换。还能生成反向解析所需的域名格式,便于配置解析记录。适合把地址转成整数存库以加速范围查询与索引。支持一次处理多行地址。可一次处理多行地址便于入库。

有效
点分十进制192.168.1.1
十进制3232235777
十六进制0xC0A80101
二进制11000000.10101000.00000001.00000001
IPv4 映射 IPv6::ffff:192.168.1.1

关于 IPv4 地址转换器

IPv4 地址转换器在 dotted-decimal、二进制与十进制整数之间互转,并解析出网络位与主机位,帮助你理解一个 IP 在子网中的具体位置。输入任意格式立即得到另外两种表示与对应的 32 位二进制串,方便排查路由表、ACL 规则或抓包数据中的地址写法。转换完全在浏览器本地完成,无需联网。对于网络运维核对地址、开发者调试 socket 代码,或学生学习 IP 编址原理,都是一个随时可用的小工具,结果可一键复制继续分析,也常与本站子网计算器搭配使用来规划网段划分。先转换再算容量会更直观,配合子网计算器能形成完整的地址规划闭环;转换在本地完成无需联网,对网络运维核对地址、开发者调试 socket 代码或学生学习 IP 编址原理都随时可用,结果可一键复制继续分析而不必在多个工具间反复切换。

点分写法与整数写法是同一个地址的两种表示,把它们当作不同东西会导致比较出错。整数表示把四个字节按固定顺序合成一个数,因此数值大小与地址顺序一致,这让「判断是否落在某个网段内」变成一次简单的数值区间比较;而点分写法便于阅读,却不便于运算。理解这层对应关系,是选择表示形式的前提。

整数表示在数据库与索引里更有优势,这一点在涉及大量地址的场景中很重要。以整数存储只需四个字节,比较与排序都是数值操作,范围查询可以直接用大于小于表达;而以字符串存储不仅占用更多空间,按字典序排序也无法得到正确的地址顺序。因此凡是要按范围或顺序检索地址的场景,整数表示都更合适。

转换时的溢出与符号问题是实现层面最常见的错误。地址的最高位为一的写法(通常属于较大的网段)在合成整数后会超过有符号三十二位整数的范围,若按有符号类型处理会变成负数,比较与显示都会出错。因此在实现转换时,中间结果应当使用无符号类型或更大的整数类型,避免在多语言之间传递时出现符号差异。

字节顺序在跨系统交换时需要显式约定,尤其是在二进制层面。同一组四个字节在两种端序下的解释完全相反,若一方按网络序写出、另一方按主机序读出,得到的地址会与预期相差很远。文本形式的点分写法没有这个问题,因此在不确定对方实现时,用文本形式交换比用原始字节更安全。

还存在一类把地址嵌入更大地址结构的表示形式,转换时需要识别。这类地址在数值上属于另一套地址空间,与原生地址并不等价,若把两者当作同一个值做去重或统计,会得出错误的规模。因此当数据里同时存在两类地址时,应当先归一化到统一形式再比较,而不是直接按整数或字符串比较。

最后,地址本身属于可识别信息,转换与批量处理时需要注意边界。把地址列表转换为整数形式并不降低其敏感性,反而可能因为不易被肉眼识别而在导出与共享时放松警惕。因此批量转换的产物应按内部资料管理,必要时做掩码处理(例如只保留网段部分),而不是原样导出全量地址。

实现原理

同一地址有多种书写形式:点分十进制、单个整数、十六进制等,它们表示的是同一个三十二位数值,因此可以互相换算而无需查表。真正需要注意的是字节序——把整数形式按大端或小端解释会得到完全不同的地址,跨系统传递时必须约定顺序。

输入192.168.1.1
输出整数形式 3232235777(等于 192×2²⁴ + 168×2¹⁶ + 1×2⁸ + 1,可直接算得而不依赖查表)

使用方法

  1. 打开「IPv4 地址转换器」
  2. 输入地址或查询参数
  3. 根据需要调整输出选项
  4. 点击「查询」按钮,结果实时显示
  5. 复制或导出结果

使用场景

  • 整型入库 — 把 IP 转成无符号整数存入数据库 INT 字段,加速范围查询和索引。
  • 位运算调试 — 查看 IP 的二进制表示,理解掩码按位与、子网计算的中间结果。
  • 十六进制核对 — 与抓包工具或十六进制日志里的地址表示相互印证。
  • 配置兼容 — 为接受整型或十六进制 IP 的老旧系统、固件生成对应写法。
  • 反向还原 — 把日志中的整数 IP 还原成可读的点分十进制做排查。

常见问题

点分十进制怎么转成整数?

把四段 a.b.c.d 按 a*256^3 + b*256^2 + c*256 + d 计算。例如 192.168.0.1 = 192*16777216 + 168*65536 + 0 + 1 = 3232235521。

为什么整数范围是 0 到 4294967295?

因为 IPv4 是 32 位,能表示 2^32 个值,即 0 到 4294967295(即 2^32 - 1),超出此范围的整数不是合法 IPv4。

十六进制为什么常带 0x 前缀?

0x 是十六进制的约定前缀,便于程序识别。如 192.168.0.1 对应 0xC0A80001,每两位十六进制对应一个字节。

需要做子网计算怎么办?

本工具只做进制转换,如需网络/广播地址、可用主机数等,请使用本站的「IPv4 子网计算」工具。

能转换 IPv6 吗?

不能,本工具仅针对 32 位 IPv4。IPv6 是 128 位、采用冒号十六进制表示,规则不同。

如何把 IPv4 地址转成二进制或整数?

粘贴点分十进制地址即可看到它的 32 位二进制与十进制整数表示,方便做掩码计算或与程序里的整数 IP 对照。

IPv4 地址和子网掩码怎么一起换算?

结合子网掩码可快速得到网络地址与主机范围,排查网段划分、ACL 规则时很实用。

How to convert an IPv4 address to binary or integer?

Paste a dotted-decimal address to see its 32-bit binary and decimal-integer form, handy for subnet math or matching an integer IP in code.

How do I convert an IPv4 address with its subnet mask?

With the subnet mask you get the network address and host range at once — useful when checking segmentation or ACL rules.

IP 地址转成整数有什么用?

整数形式便于范围比较与数据库存储:判断 192.168.1.0/24 是否包含某 IP,转成整数做区间比较比字符串解析快得多。IP 库、防火墙规则、CDN 调度底层都是整数运算。

为什么有些 IP 写法(如 192.168.257)也能被某些系统解析?

历史原因:inet_aton 支持省略写法(三段式把最后一段当 16 位、二段式当 24 位),192.168.257 实际等于 192.168.1.1。这种解析宽松性曾被用于绕过过滤器。工具按标准点分四段校验,非标准写法会拒绝。

子网掩码和 CIDR 前缀怎么互相换算?

255.255.255.0 的二进制是 24 个 1,所以等于 /24。换算口诀:掩码每段 255 计 8 位,128=1 位、192=2、224=3、240=4、248=5、252=6、254=7、255=8。工具双向换算,输入任一形式即可得到另一种。

广告