进制转换工具:IP、DEC、BIN、HEX 互转
看到
3232235777知道是192.168.1.1吗?看到0xC0A80101呢?这个工具一秒给你答案。
背景
数通工程师遇到的"神秘数字":
| 数字 | 是啥? |
|---|---|
3232235777 |
192.168.1.1 转十进制 |
0xC0A80101 |
192.168.1.1 转十六进制 |
11000000.10101000.00000001.00000001 |
192.168.1.1 二进制 |
-1062731487 |
192.168.1.1 有符号十进制 |
每次都在脑子里转一遍?太累。
工具能做什么

任填一个输入框,自动显示其他三种格式。
支持的格式:
- ✅ 192.168.1.1(点分十进制 IP)
- ✅ 3232235777(无符号十进制)
- ✅ 11000000.10101000.00000001.00000001(32 位二进制)
- ✅ C0A80101 或 0xC0A80101(十六进制)
使用场景
场景 1:日志里的 IP 转可读格式
WAF 告警:源 IP 0xC0A80101 大量访问 /admin
→ 0xC0A80101 = 192.168.1.1(来自内网!)
场景 2:路由表里的奇怪数字
bgp table: 3232235777/32
→ 192.168.1.1/32(精确路由)
场景 3:配置 IPsec/IKE 协商参数
某些厂商(华为)的 IKE peer 配置用十六进制 IP。
场景 4:理解网络字节序
192.168.1.1 的十六进制 C0A80101 —— 是网络字节序(大端序)。
核心实现
Python 一行解决:
import ipaddress
# IP → int
ip = ipaddress.IPv4Address('192.168.1.1')
num = int(ip) # 3232235777
# int → IP
ipaddress.IPv4Address(3232235777) # 192.168.1.1
# int → hex
format(3232235777, '08X') # 'C0A80101'
# int → bin
format(3232235777, '032b') # '11000000101010000000000100000001'
二进制分组:
b = format(3232235777, '032b')
# '11000000101010000000000100000001'
parts = [b[i:i+8] for i in range(0, 32, 8)]
# ['11000000', '10101000', '00000001', '00000001']
有符号转换:
def to_signed(n):
if n >= 2**31:
return n - 2**32
return n
to_signed(3232235777) # 3232235777(小于 2^31,正数不变)
to_signed(2**31) # -2147483648(有符号最小值)
在线使用
👉 进制转换
进阶:网络字节序
记住这点:网络传输总是大端序。
192.168.1.1 转二进制后,192 在前,1 在后 —— 这就是网络字节序。
如果看到小端序的数字(比如 0x0101A8C0),那是有人搞反了或者用了不同的库。
数字彩蛋
192.168.1.1 = 3232235777 = 0xC0A80101
└─ Google "3232235777" 是工程师的成年礼
📱 关注「网英的日常」,每天学一个数通技巧!