IPv4 地址转换器
在 IPv4 的点分十进制、32 位十进制、十六进制与二进制之间互相转换,并查看其 in-addr.arpa 形式。
一个地址,多种表示。 在任意 IPv4 地址的点分十进制、32 位整数、十六进制与二进制形式间切换,并显示反向 DNS 的 in-addr.arpa 名称。纯数学运算,在浏览器内完成。
在 IPv4 的点分十进制、32 位十进制、十六进制与二进制之间互相转换,并查看其 in-addr.arpa 形式。
一个地址,多种表示。 在任意 IPv4 地址的点分十进制、32 位整数、十六进制与二进制形式间切换,并显示反向 DNS 的 in-addr.arpa 名称。纯数学运算,在浏览器内完成。
IPv4 地址本质上是一个 32 位无符号整数。我们熟悉的点分四段写法只是一种显示约定:192.168.1.1 是四个 8 位分段各自用十进制书写、再用点连接的结果,比它真实的数值 3232235777 好读得多。本页的每一种写法都是同一个数字换了件衣服,因此互相转换不会丢失任何信息。
十进制形式就是把这个整数完整写出来。十六进制形式把 32 位切成 8 个十六进制数字,好处是每两位正好对应一个字节——0xC0A80101 可以干净地拆成 C0、A8、01、01。二进制形式让比特边界变得可见,在推敲子网掩码时正是你需要的视角。
整数形式出现在需要低成本存储和比较地址的场合。数据库偏爱它,因为 INT UNSIGNED 的排序和范围扫描比字符串快得多,WHERE ip BETWEEN x AND y 可以直接走索引。日志管道和 GeoIP 库把地址段表示成整数对,也是同样的原因。
十六进制常见于抓包结果、内核数据结构和一些较老的配置格式。二进制主要用于教学和排错:把地址和掩码按二进制对齐排列,网络位与主机位的划分就不再抽象。
正向 DNS 把域名解析为地址,反向 DNS 则相反。由于 DNS 的授权是从右往左逐级细化,而 IPv4 地址是从左往右逐级细化,两者方向相反,所以octet 必须倒序书写。192.168.1.1 对应 1.1.168.192.in-addr.arpa,该名称下的 PTR 记录给出主机名。邮件服务器会例行检查这一项——PTR 缺失或与正向记录不一致,是正常邮件被判为垃圾邮件的常见原因。