美文网首页
mysql-php使用整型保存IP地址

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

作者: Cesc90 | 来源:发表于2016-07-18 19:24 被阅读0次

在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()**

<?php echo sprintf("%u\n", ip2long("157.23.56.90"));//输出2635544666

数字转IP函数 long2ip()

<?php$ip_long = 2635544666;echo long2ip($ip_long) . "\n";//输出157.23.56.90

相关文章

网友评论

      本文标题:mysql-php使用整型保存IP地址

      本文链接:https://www.haomeiwen.com/subject/zqxmjttx.html