美文网首页
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