zoukankan      html  css  js  c++  java
  • 使用GEOIP进行用户IP的分析

    使用GEOIP进行用户IP的分析

    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/geolitecountryhttp://www.maxmind.com/app/geolitecity)。GeoLiteCountry的文件大小约为1M,而GeoLiteCountry的大小约为43M。

    Perl的GeoIP模块主要是两个Geo::IP和Geo::IP::PurePerl,前面一个调用C语言实现,效率比后面一个纯Perl实现的模块高一些。

    下面是分析一个IP国家信息的代码:

    Php代码
    1. use Geo::IP;  
    2.   
    3. my $gi = Geo::IP->new(GEOIP_STANDARD);  
    4. my $country = $gi->country_code_by_addr("24.24.24.24") || 'no record';  
    5.   
    6. print "country: $country\n";  

    输出为:

    C-sharp代码
    1. country: US  

    下面是分析一个IP详细信息的代码:

    Php代码
    1. use Geo::IP;  
    2.   
    3. my $gi =  
    4.   Geo::IP->open( "/usr/local/share/GeoIP/GeoLiteCity.dat", GEOIP_STANDARD );  
    5.   
    6. my $r = $gi->record_by_name("134.153.33.202") || 'no record';  
    7.   
    8. print join( "--",  
    9.     $r->country_code, $r->country_code3, $r->region, $r->region_name, $r->city,  
    10.     $r->postal_code, $r->latitude, $r->longitude );  

    输出为:

    C-sharp代码
    1. CA--CAN--NL--Newfoundland-Saint John's----47.5500---52.6667  

    可以看到此用户来自加拿大的纽芬兰岛的圣约翰区。

    针对批量的用户数据统计,我们可以分析出重点用户区域和市场推广效果,下图为一个实例,从中我们可以看出国外用户数量的变化趋势。



查看全文
  • 相关阅读:
    linux脚本Shell之awk详解(二)
    linux脚本Shell之awk详解
    漫谈计算摄像学 (二):利用光场实现“先拍照后对焦”
    漫谈计算摄像学 (一):直观理解光场(Light Field)
    利用OpenCV检测图像中的长方形画布或纸张并提取图像内容
    2048理论上最高能玩到多少分?
    蛋疼之作:99行代码的2048
    用一个玩具例子说明基于视频的超分辨率重建的基本思想
    [C++]二维数组还是一维数组?
    三维空间中如何寻找和一组给定直线垂直程度最高的直线
  • 原文地址:https://www.cnblogs.com/lexus/p/2146343.html
  • Copyright © 2011-2022 走看看