码迷,mamicode.com
首页 > 数据库 > 详细

mysql+ip

时间:2015-04-01 01:43:56      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

有点无耻了,下面这段是贴过来的。

PHP
echo ip2long(‘192.168.1.38‘);
输出:3232235814

MYSQL
SELECT INET_ATON(‘192.168.1.38‘);
输出:3232235814

两个函数返回的结果是一样的,都是A*256*256*256+B*256*256+C*256+D的算法
192*256*256*256+168*256*256+1*256+38 = 3 232 235 814

反过来,从int转换为IP地址分别是php的long2ip()和mysql的INET_NTOA()。

mysql存储这个值是字段需要用int UNSIGNED。不用UNSIGNED的话,128以上的IP段就存储不了了。

传统的方法,创建varchar(15),需要占用15个字节,而改时使用int只需要4字节,可以省一些字节。

php存入时:$ip = ip2long($ip);
mysql取出时:SELECT INET_ATON(ip) FROM table ...
php取出时,多一步:$ip = long2ip($ip);

 

 

相关链接:

  http://www.9enjoy.com/mysql-ip2long/   // mysql处理

mysql+ip

标签:

原文地址:http://www.cnblogs.com/zhongyuan/p/4382524.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!