mysql-php使用整型保存IP地址

在MySQL中没有直接提供IP类型字段,但有两个函数可以把IP与最大长度为10位数字类型互转,所以使用unsigned int类型存储IP比varchar类型存储IP地址性能要提升很多,减少不少空间(因为varchar是可变长形,需要多余的一个字节存储长度),另外int型在逻辑运算上要比varchar速度快。


mysql实现

IP转数字函数 inet_aton()

    mysql>  select inet_aton( '255.255.255.255' );//输出4294967295

所以IP的表字段可以设置为INT(10)就好,如果IP获取不到可以直接存0。

数字转IP函数 inet_ntoa()

    mysql> select inet_ntoa(4294967295);//输出255.255.255.255

注意,0转换为 0.0.0.0


php实现

****IP转数字函数 ip2long()**

数字转IP函数 long2ip()

你可能感兴趣的:(mysql-php使用整型保存IP地址)