正文:将IP地址以整型存储

  一般我们在数据库中会用到ip地址用来查记录的等等,而ip地址是分为四段的,一般是用varchar或char类型存储。但是其实有更好的存储方法就是以整型存储IP地址、因为char和varchar所占字节会比int类型要大,例如:char(16),就占了16个字节,而使用 int类型的时候只占了4字节。假如使用char类型来存储ip地址那么当数据达到1亿的时候会比使用int类型存储ip地址要多1.8G的存储空间、而且查询速度也会变快、同时也方便比较(between之类的sql语句)。所以在设计数据表结构的时候以int类型存储IP地址为最佳,且设置符号类型为unsigned的话保证了长度不够的情况,下面用PHP与SQL展示如何将ip地址互相转换。

PHP示例:

  1. //你的ip地址
  2. $user_ip = $_SERVER['REMOTE_ADDR'];
  3. //将获取到的ip地址转换为整型以及无符号格式
  4. $save_ip = sprintf('%u',ip2long($userIp));
  5. //转换整型后的ip地址
  6. echo $save_ip;
  7. //将整型的ip地址转换为正常ip地址
  8. echo long2ip($save_ip);

SQL示例:

  1. -- ip地址转换为整型
  2. select inet_aton('192.168.1.1');
  3. -- 将整型ip地址转换为正常ip地址
  4. select inet_ntoa('3232235777');

就到这里啦,如果觉得博主写的还不错,可以点赞、评论、推荐三连支持下博主,你的三连就是我最大的动力!

版权声明:本文为DoonyLiu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/DoonyLiu/p/13280248.html