使用GEOIP进行用户IP的分析
2011-08-19 22:57
615 查看
使用GEOIP进行用户IP的分析
PerlVBPascalVB.NETPython MaxMind公司的GeoIP数据库可以根据用户IP精确的获得用户地理位置信息,火狐就是使用它来统计下载用户所在区域的。主要包括两个以键值方式存储的数据文件,Geo Country和Geo IP,如果只关注国家信息,可以使用小得多的Geo Country库。
这两个库都分为商业的和免费的两个版本,精确率都在99.5%以上,对于大多数的应用,免费的版本已经足够了。
GEOIP的客户端包括各种语言:
C Library
Perl Module
PHP Module
Apache Module (mod_geoip)
Java Class
Python Class
C# Class
Ruby Module
MS COM Object
VB.NET
Pascal
Javascript
下面以Perl为例,介绍一下使用方法。
首先下载GeoLiteCountry或GeoLiteCity的数据文件(http://www.maxmind.com/app/geolitecountry或http://www.maxmind.com/app/geolitecity)。GeoLiteCountry的文件大小约为1M,而GeoLiteCountry的大小约为43M。
Perl的GeoIP模块主要是两个Geo::IP和Geo::IP::PurePerl,前面一个调用C语言实现,效率比后面一个纯Perl实现的模块高一些。
下面是分析一个IP国家信息的代码:
Php代码 use Geo::IP;
my $gi = Geo::IP->new(GEOIP_STANDARD);
my $country = $gi->country_code_by_addr("24.24.24.24") || 'no record';
print "country: $country\n";
输出为:
C-sharp代码 country: US
下面是分析一个IP详细信息的代码:
Php代码 use Geo::IP;
my $gi =
Geo::IP->open( "/usr/local/share/GeoIP/GeoLiteCity.dat", GEOIP_STANDARD );
my $r = $gi->record_by_name("134.153.33.202") || 'no record';
print join( "--",
$r->country_code, $r->country_code3, $r->region, $r->region_name, $r->city,
$r->postal_code, $r->latitude, $r->longitude );
输出为:
C-sharp代码 CA--CAN--NL--Newfoundland-Saint John's----47.5500---52.6667
可以看到此用户来自加拿大的纽芬兰岛的圣约翰区。
针对批量的用户数据统计,我们可以分析出重点用户区域和市场推广效果,下图为一个实例,从中我们可以看出国外用户数量的变化趋势。
相关文章推荐
- 使用GEOIP进行用户IP的分析
- 使用GEOIP进行用户IP的分析
- 使用GEOIP进行用户IP的分析
- python爬虫爬取指定用户微博图片及内容,并进行微博分类及使用习惯分析,生成可视化图表
- [置顶] 使用Spark Streaming进行豆瓣用户画像分析
- 使用hadoop streaming进行用户流量分析
- 对110W知乎用户信息进行分析,使用echarts+servlet+jsp可视化展示
- 使用Jenkins进行持续集成(三)-邮箱与用户
- 使用分析函数进行行列转换
- WEB打印系列教程之一--基于Web的打印方案比较分析、使用IE的打印功能进行一般的网页打印
- 使用Shell对apache日志进行分析
- GDB arm-linux交叉编译移植和使用方法(特别是对于正在运行的程序或者段错误的程序进行分析)
- 使用Bmob进行用户登录
- 使用tomcat日志对访问ip进行排序
- Spark 实战,第 3 部分: 使用 Spark SQL 对结构化数据进行统计分析
- 使用bcrypt进行用户密码加密的简单实现
- PAPI:使用PAPI对程序进行性能分析(1)
- 使用 VisualVM 进行性能分析及调优
- Spark日志分析项目Demo(4)--RDD使用,用户行为统计分析