piwik取ip:ip与16进制互转
装了一个piwik做站点分析,类似自建的站长统计。想提取访客ip做一些应用,发现不是直接存的ip。
1、存储
1.1 ip在数据库中以16进制存储
网络地址: 192.168.33.123
每一个值最大不会越过255,也就是十六进制的FF,两个Byte刚好表示的最大值是255,
这样子,就可以用一个32位的整形来保存这个地址
192 168 33 123
1100 0000 1010 1000 0010 0001 0111 1011
把这些二进制合在一起就是32位的数了
11000000101010000010000101111011
十进制为
3232244091
1.2 php
piwik是php语言,php中有ip2long(),long2ip()2个函数实现ip与进制互转
存到数据库中就是16进制的短地址了。
2、mysql
mysql内建函数支持
SELECT inet_ntoa(3520061481); –> 209.207.224.41
SELECT INET_ATON(‘209.207.224.41’); –> 3520061481
SELECT inet_ntoa(conv(hex(location_ip), 16, 10)) as ip, idvisitor
FROM piwik_log_visit;
3、oracle
piwik数据库用