日期:2014-05-16  浏览次数:20409 次

将IP以整型的方式存储到数据库中

在实现某些功能时有时会用到用户的IP地址,因为IP地址有四段,在保存到MySQL数据库中的时候可能会使用varchar(15)或者char(15),其实还有更好的方式那就是将IP地址转换成整型,这样占用空间更小,查询速度快,同时还方便比较。在数据库设计时要用无符号INT UNSIGNED,否则长度不够。下面给出主要PHP代码:

  1. <?php
  2. $ip '这里是获取到的IP';
  3. echo $intip sprintf('%u',ip2long($ip)); //转换为无符号整型
  4. echo long2ip($intip);//将整型转换为ip
  5. ?>
        这样保存到数据库之后也很容易比较,例如类似between之类的语句,在sql语句中也可以通过函数实现转换:

       将IP地址转换为整型可以使用 select inet_aton(ip) from users;

       将整型转换为IP地址可以使用 select inet_ntoa(intip) from users;