IP转二进制转换器

IPv4 地址本质上是 32 个二进制位,点分十进制只是把它切成四段、每段换算成十进制后人眼比较好读的写法。本页在二进制、十六进制、32 位无符号整数三种表示之间互转:默认示例 192.168.1.1 会拆成 11000000 10101000 00000001 00000001,连写的十六进制是 C0A80101,整数形式是 3232235777。同时给出这个地址属于 A 到 E 哪一类、落在哪一段特殊用途区间里。也可以切到反向模式,把一个整数还原成点分十进制地址。

两种模式共用同一个输入框,切换后输入框的合法格式随之改变
四段十进制,每段 0~255,不带前导零;整数模式下填 0~4294967295
结果区一次输出五种信息,可直接整段复制

提示:输入框裸按 Enter 立即转换;结果区带 role="alert",读屏软件会朗读本次结果。

常见地址段与公共 DNS 对照表

地址或地址段类别用途说明
10.0.0.0/8A 类私有RFC 1918,整个 10 段都是内网
172.16.0.0/12B 类私有RFC 1918,仅 172.16~172.31 十六段
192.168.0.0/16C 类私有RFC 1918,家用路由器最常用
127.0.0.0/8A 类环回指向本机,不经过网卡
169.254.0.0/16B 类链路本地DHCP 失败时系统自动配置
100.64.0.0/10A 类运营商级 NATRFC 6598,仅 100.64~100.127
0.0.0.0/8A 类本网络未指定地址与默认路由
224.0.0.0/4D 类组播一对多通信,不能作源地址
240.0.0.0/4E 类保留实验用途,不在公网路由
255.255.255.255/32E 类受限广播只在本网段内生效
8.8.8.8A 类公共 DNSGoogle Public DNS
1.1.1.1A 类公共 DNSCloudflare DNS

对照表列出的是地址段与地址的固定属性,不随上方输入变化;某一个具体地址的类别与用途请以上方结果区为准。

使用方法

第一步,选模式。IP转二进制转换器默认停在「IPv4 → 二进制 / 十六进制 / 十进制」,输入框里已经填好 192.168.1.1,打开页面结果区就有内容,不需要先点任何按钮。

第二步,填地址。只写点分十进制:四段、三个点、每段 0 到 255 的纯数字、不带前导零。写成「192.168.001.1」会被拒绝,因为前导零在历史上被解读成八进制,同一串字符有两种含义,本页直接拒掉以免误判。

第三步,看结果。结果区一次给出五种信息:四段八位二进制(段间一个空格)、四段连写的两位十六进制、32 位无符号整数、这个地址属于 A 到 E 哪一类、以及它落在哪一段特殊用途区间。五种信息排成五行,等宽字体显示,位与位不会看串行。

第四步,想从整数反推地址,就把模式切到「十进制整数 → IPv4」,输入框改填 3232235777,结果区第一行会给出 192.168.1.1,同时照样给出二进制与十六进制。两种模式共用同一个输入框,切换时会自动重算一次。

点「载入示例」把模式和输入一次性还原成默认值;点「复制结果」把五行结果一起放进剪贴板。下方对照表的「导出对照表 CSV」下载带 UTF-8 BOM 的表格,Excel 打开中文不乱码;「复制对照表」按 TSV 复制,可直接粘进表格软件。

这个工具能解决什么问题

第一,做子网划分时必须把地址看成二进制。/24 掩码的意思是前 24 位不变、后 8 位随意,这个结论只有把 192.168.1.1 写成 11000000 10101000 00000001 00000001 之后才一目了然。手写转换时最容易在「168 = 10101000」这种中间段上出错,本页逐段给出,可直接对照。

第二,数据库与日志里整数形式的地址要能还原。很多系统为了省空间把 IPv4 存成 32 位无符号整数,MySQL 的 INT UNSIGNED 四字节就能放下,而字符串形式的「192.168.1.1」至少要十几个字节。排错时日志里出现 3232235777 这样的字段,切到反向模式一比就知道是哪台设备。

第三,判断一个地址是内网还是公网。10 开头、172.16 到 172.31、192.168 开头这三段是 RFC 1918 定义的私有地址,不会出现在互联网上;127 开头指向本机;169.254 表示 DHCP 没拿到地址;100.64 是运营商级 NAT。结果区的「用途」一行直接给出结论,不用背表。

第四,接口与报文调试。抓包工具、字节序讨论、Socket 编程里时常要在二进制、十六进制、整数三种写法间切换。本页三种表示一次给全,避免在计算器、记事本和在线工具之间来回搬运。

本页不做这些事:不做子网划分与通配符掩码计算;不解析 IPv6 与 MAC 地址;不做反向 DNS 查询和归属地查询。它只回答「一个 IPv4 地址的三种表示分别是什么,以及它属于哪一类、哪一种用途」。

转换原理与变量说明

IPv4 地址是 32 位无符号整数,点分十进制把它按 8 位一段切成四段,每段单独换算成十进制。所以核心变量只有四个:a、b、c、d,各取 0~255,输入框里那串字符按点切开就得到它们。

二进制表示:对每一段取 n.toString(2),不足 8 位时在前面补零。192 的二进制是 11000000,1 的二进制是 1,补足八位写成 00000001。四段之间用一个空格分隔,纯粹为了人眼读数,空格不是数据的一部分。

十六进制表示:对每一段取 n.toString(16),不足两位补零,再四段连写并转为大写。192 是 c0、168 是 a8、1 是 01,连起来就是 C0A80101。补零这一步不能省:1 若只写成 1,整串就从八位变成七位,和后面那段粘在一起。

32 位无符号整数:((a × 256 + b) × 256 + c) × 256 + d,等价于按位左移后相加。代入 192.168.1.1 得 ((192×256+168)×256+1)×256+1 = 3232235777。反向也简单:Math.floor(n / 16777216) 得第一段,Math.floor(n / 65536) % 256 得第二段,Math.floor(n / 256) % 256 得第三段,n % 256 得第四段。

类别判定只看第一段:小于 128 是 A 类,小于 192 是 B 类,小于 224 是 C 类,小于 240 是 D 类(组播),其余是 E 类(保留)。这是 1981 年定下的有分类编址规则,今天虽然已被无分类域间路由取代,但首段判断类别依然是排查问题时最快的抓手。

用途判定要同时看前两段:172.16.0.0/12 只覆盖 172.16 到 172.31,所以见到 172.200.x.x 仍是公网;100.64.0.0/10 只覆盖 100.64 到 100.127;其余私有段、环回、链路本地、组播、保留段都只看第一段即可判定。

完整示例(默认输入实测)

示例条件与页面默认值完全一致:IPv4 → 各进制模式,输入 192.168.1.1。逐段核对——192 = 128 + 64 = 11000000,168 = 128 + 32 + 8 = 10101000,1 = 00000001,1 = 00000001;二进制一行写作 11000000 10101000 00000001 00000001。十六进制逐段是 c0、a8、01、01,连写大写得 C0A80101。整数代入 ((192×256+168)×256+1)×256+1 = 3232235777。类别上 192 落在 192~223,是 C 类;用途上前两段 192.168 命中 RFC 1918 的 192.168.0.0/16,标注为私有地址。

换几个地址验证边界与常见值:

反向模式同样可复算:输入 3232235777,先算 3232235777 ÷ 16777216 取整得 192,余数依次取出 168、1、1,还原成 192.168.1.1,与正向结果完全对上,说明两个方向的公式是同一件事的两种写法。

需要提醒:结果区的二进制段间空格只是阅读分隔,复制出来粘到代码里时若不需要空格,请自行去掉;整数形式在复制时是纯数字,没有千位分隔符,方便直接粘贴进配置文件。

常见地址段对照表

下表共 14 行,默认显示前 12 行,点「加载更多(还有 2 行)」展开最后两条公共 DNS。前 10 行是各类保留地址段,最后 4 行是日常排错最常 ping 的公共 DNS。表格可直接导出 CSV 或按 TSV 复制。

读这张表要抓住一条主线:「类别」由首段决定,「用途」常常要再看一段。172 开头的地址首段都落在 128~191 的 B 类区间,但只有 172.16 到 172.31 这十六个第二段属于私有,172.32 往后都是公网。把这两列连起来看,就不会出现「见到 172 就当内网」的误判。

表里的「公共 DNS」四行是具体地址而不是地址段,填进上方输入框可以直接看到它们的二进制与整数形式:8.8.8.8 的二进制四段完全相同,是最容易验证转换是否正确的样本。表里没有列出的地址,用上方计算器任意输入同样算得出来。

结果边界与舍入

常见问题

192 为什么等于二进制 11000000?

192 = 128 + 64,对应二进制第 8 位和第 7 位为 1,其余为 0,写出来就是 11000000。同理 168 = 128 + 32 + 8,二进制是 10101000。转换时可以按 128、64、32、16、8、4、2、1 八个权值从高到低试减,减得了记 1,减不了记 0。

为什么不允许写 192.168.001.1?

因为带前导零的段在历史上被某些解析库当成八进制,003 会被解成 3,也有库坚持按十进制解成 3,还有库直接报错。同一串字符有三种下场,本页为了消除歧义,统一按十进制解析并拒绝前导零,只允许单独的 0。

整数形式最大能到多少?

IPv4 的整数形式是 32 位无符号整数,最大 4294967295,对应 255.255.255.255,最小 0,对应 0.0.0.0。整个区间在双精度浮点里都能精确表示,因为双精度浮点的整数精确上限是 2 的 53 次方,远大于 2 的 32 次方。

私有地址和公网地址怎么区分?

看首两段。10.x.x.x 整段私有;172.16.x.x 到 172.31.x.x 私有;192.168.x.x 私有,这三段合起来就是 RFC 1918。此外 127.x.x.x 是环回、169.254.x.x 是链路本地、100.64~100.127 是运营商级 NAT,都不会作为公网主机地址出现在互联网上。

支持 IPv6 吗?

不支持。IPv6 是 128 位,标准写法是八组四位十六进制用冒号分隔,还有前导零压缩和双冒号省略规则,压缩还原的逻辑和 IPv4 完全不同,混在一个页面里只会让两边都说不清。本页只处理 IPv4。

十六进制为什么每段要补零到两位?

因为十六进制是按字节组织的,一个字节恰好两位十六进制数。1 的十六进制是 1,不补零就只占一位,连写时 C0A801 会变成七位,后面的段会整体错位。补零之后每段固定两位,四段连写恒为八位,肉眼一数就知道有没有漏。

这个工具能做子网划分吗?

不能。本页只做三种表示之间的互转,不涉及掩码、网络地址、广播地址和可用主机数的计算。那些计算需要先确定前缀长度,再对二进制做按位与,属于另一类工具。把本页给出的二进制结果作为手工推演的起点是安全的。

我的数据会被上传吗?

不会。所有转换只在当前浏览器本地执行,页面不发起任何网络请求,也不写 Cookie 或 localStorage。打开开发者工具的 Network 面板连点几次转换,记录始终是空的。

相关工具