IP与数字转换
数字地址就是IP地址的另一种表现形式,都可以被浏览器、ping命令识别还原和访问。
在IP存储中,有多种方式可以存储IP地址,但是如果将IP地址或IP段转换成数字保存在数据库中,不仅可以减少磁盘大小占用还可以提高检索速度。
数据类型 |
占用空间 |
可读性 |
存储占用空间 |
说明 |
varchar |
7-15字节 |
1 |
3 |
直接存储:0.0.0.0 - 255.255.255.255 |
bigint |
8字节 |
2 |
2 |
将IP直接去掉点,如192.168.0.1 存储为19216801 |
int |
4字节 |
4 |
1 |
这种方式可读性最差,分别由IP拆分后每一段的二进制移位后相加所得
如10.0.3.193 存储为 10<<24+0<<16+3<<8+193,也就是:
10 对应的二进制 00001010
0 对应的二进制 00000000
3 对应的二进制 00000011
193 对应的二进制 11000001
结果为:
00001010 00000000 00000011 11000001
转成10进制为:167773121
|
varbinary |
4字节 |
3 |
1 |
将IP拆分成四段,每段取对应的16进制;
192.168.0.1 转16进制为:0xC0A80001
|
综上,在数据存储中,使用16进制存储IP是最恰当的。