现在我的mysql中有个用户登录ip地址的记录,现在我要将ip地址变成所在地,然后将所在地有多少用户数统计输出?
例如:用户 ip地址
    aa  80.X.X.X
       bb    70.X.X.X
       ..    ........
现在要用php在页面上展示出
     所在地  用户数
   北京   100
   上海   200
   。。   
请各位大牛给出可行性方法或者代码都可以!~~~~

解决方案 »

  1.   

    ip城市库,或者提供这样查询的网站api,或者curl发送给这样的网站查询取回结果后保存
      

  2.   

    自己搞个库不方便,而且数据时常都要更新,数据量如此之大,数据也是个问题,所以建议你如果没特别要求的话,用小偷类程序去请求大站点的IP库,然后返回地址到本站,比如IP138的请求地址:
    http://www.ip138.com/ips.asp?ip=114.15.129.115&action=2,红色体部分改成客户端IP变量即可!AJAX无刷新请求到IP138,返回的结果进行过滤,就能达到效果!
      

  3.   

    可能是我问题没有描述清楚,是这样的,我现在mysql里面有一张记录了用户注册ip的字段,现在要对这个字段进行分析,我要把这些注册的ip地址全部变成城市名称,然后再进行一个统计,能够很清楚的知道在各个城市有多少人。
      

  4.   

        明白了,比较好的做好是再增加一个城市名称字段,这个入库以前很关键,入库以前如果能根据客户端IP去查IP138的对应城市名称,再添加城市名称字段里,那么你的这个要求就比较简单了,如果没有,那么即使你的数据量不大,请求也够你累的了!需要把所有IP对应到IP138上去查找,并添加字段,或者对应到IP地址库里一一比对,总之在只有IP没有城市的数据库里这种操作很耗时间!方法是先遍历你自己的IP数据库,逐行取出IP,然后拿去比对获得城市名称!
      

  5.   


    下载一个qq清风的ip库,然后慢慢查出城市,要靠城市字段来统计!
      

  6.   

    所以才麻烦阿!~~前台没有做转换,现在却要统计麻烦了些,方法是很清楚,就是要先自己找个ip数据库将现有的数据库里面的ip匹配上城市名,然后在昨天做统计输出。
      

  7.   

    这个有2种方法可以解决
    第一种是通过mysql数据库内的ip地址表,通过一个存储过程可以进行处理,但是速度比较慢。
    第二种通过geoip来处理,速度比较快,但是展示出来的城市名是英文的。