piwik取ip:ip与16进制互转
来源:互联网 发布:三挫仑在淘宝上叫什么 编辑:程序博客网 时间:2024/05/29 14:07
piwik取ip:ip与16进制互转
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数据库用的mysql,我同步回本地的oracle,取ip实现如下:
select idvisitor,trunc(ip/16777216)||'.'|| trunc( mod(ip, 16777216)/65536) ||'.'|| trunc(mod(ip,65536)/256)||'.'|| trunc(mod(ip,256)) as ipfrom (select idvisitor,location_ip as ip from PIWIK_LOG_VISIT)
3、java
如果数据库中取出来没转换好,需在程序中实现,java代码如下
long2ip:
public class test { public static void main(String[] args) { long lon = 0x1b9f160f; String ip = ""; int[] b = new int[4]; b[0] = (int) ((lon >> 24) & 0xff); b[1] = (int) ((lon >> 16) & 0xff); b[2] = (int) ((lon >> 8) & 0xff); b[3] = (int) (lon & 0xff); ip = Integer.toString(b[0]) + "." + Integer.toString(b[1]) + "." + Integer.toString(b[2])+ "." + Integer.toString(b[3]); System.out.println(ip); }}
0 0
- piwik取ip:ip与16进制互转
- Piwik收集IP信息的二次开发
- 取IP
- 取本机IP
- 取客户IP地址
- 取IP地址
- 取ip、掩码、网关
- java 取客户端ip
- 取IP地址所在城市
- 取用户IP
- IP地址爬取
- linux 下取ip
- 爬取代理ip
- VC中IP地址控件的赋值与取值
- VC中IP地址控件的赋值与取值
- 开发与编程ABAP取IP地址的方法
- 开发与编程ABAP取IP地址的方法
- VC中IP地址控件的赋值与取值
- java处理高并发高负载类网站的优化方法
- 6.1-键盘之综合示例
- ListView的OnItemClickListener失效的解决办法
- 数据库字符集引发的血案
- 12天学好C语言——记录我的C语言学习之路(Day 4)
- piwik取ip:ip与16进制互转
- 来到亚信第一周---学习内容
- NSString的常用方法
- 8张图理解Java
- 黑马程序员——Java学习总结:IO常用方法练习
- 【linux】ubuntu14.04安装apache-maven-3.3.3
- openwrt的结构 与 编写 HelloWorld程序
- JAVA中的使用Filter过滤器设置字符集
- JS实现HTML地图定位