基于GIScript和GeoIP进行访问网址的地理定位分析

通过网页访问日志分析使用者的地址,然后将其放到地图上,分析访问来源的热区从而得到用户的地图分布,是不是很有用、也很酷?这里介绍个使用GIScript和GeoIP来进行访问网址的地理定位的例子。

这个功能虽然看起来简单,但其实要分为很多个环节的。下面详述:

  • 1、首先是获取IP地址,这个不多说了。在Web服务器的RequestHeaders中都有,也可以通过日志进行提取。从文件中提取可以批量处理,而从访问信息中提取然后直接发送到消息总线或NoSQL之类的高效率存储系统可以实现实时的处理。
  • 2、使用GeoIP讲域名或IP地址解析为地名。GeoIP是MaxMind开发的用于IP到地址的解析工具,包括软件和IP数据库。免费版的定位较粗,而付费版的可以实现较高精度的定位。
  • 3、将地名通过地理编码(Geocoding)功能转换为空间坐标或空间几何对象,需要软件和地图数据的共同支持。这个以前是专业GIS才有的功能,现在google/百度都提供在线服务接口。但是因为在线的有很多限制(网络带宽、并发控制、账号等等),这里使用GIScript这个工具来做。因为与GeoIP都有Python库,很容易集成到一起。如果需要大批量的处理,再假设一个Celery进行并行处理就OK了。
  • 4、统计空间数据库中的数据样本的频度和其它属性,生成专题图或中间结果,可以输出图件或者将数据传送到R中继续进行高级分析,产生统计图表。
  • 5、R分析的结果可以使用GIScript反向保存回空间数据库,进一步进行高级专题图的制作。

这个流程可以用到很多应用场景中,比如用户分析、反欺诈、搜索分析、市场分析等等。

后面进行具体的攻略研究,未完待续。

时间: 2024-10-20 00:06:02

基于GIScript和GeoIP进行访问网址的地理定位分析的相关文章

利用GeoIP数据库及API进行地理定位查询

GeoIP数据库下载地址:http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz. 首先,在MaxMind官网下载所需资源 下载后,我们将其解压到d盘,具体的安装文档参看 GeoIP Legacy City数据库安装说明 MaxMind提供多种api接口,如:perl, java, python, c, php, c#等,我们这里使用c#(https://github.com/maxmind/g

访问网址(使用CDN)时 智能DNS调度 与 用户定位调度(根据IP定位)

大型网站或多受众用户服务网站在中国特定网络环境下,离不开CDN(内容服务网络)及用户调度.而CDN与用户调度则涉及智能DNS解析与用户定位的问题. 大家知道,现在很多网站的 GLSB 都是基于 DNS 来做用户定位调度.DNS 的解析流程如下: 比如,我是北京的用户,我的 DNS 为 202.106.0.20.当我要打开 www.php-oa.com 时,先会给请求发给 ISP 告诉我的 DNS.这个叫 Local DNS .然后其它的向根域和二级域的查询,都是由 Local DNS 帮我完成的

php -- php模拟浏览器访问网址

目前我所了解到的在php后台中,用php模拟浏览器访问网址的方法有两种: 第一种:file_get_contents($url) 通过php内置的 file_get_contents 函数可以模拟浏览器访问网址的行为,取的结果就是那个网址所返回的所有东西(这种情况一般用于返回的是 xml 格式字符串或者 json 字符串) 第二种:curl curl 是 php 提供的内置函数,其功能非常强大,封装常用的http,soap,ftp等协议 微信主要通过其进行模拟POST请求 1)初始化curl 2

asp.net mvc,基于aop实现的接口访问统计、接口缓存等

其实asp.net 上aop现有的框架应该蛮多的,比如静态注入式的PostSharp(新版本好像已经商业化了,旧版本又不支持.net4.0+),或者通过反射的(性能会降低). 本文则是通过mvc其中一种方法拦截器ActionFilter(参考网上已经有很多类似例子). 首先新建一个日志控制类,命名为ApiLogAttribute,继承于ActionFilterAttribute /// <summary> /// 记录访问日志以及站点安全检查 /// </summary> publ

基于页面染色技术的内存数据库访问优化方法

本发明公开了一种基于页面染色技术的内存数据库访问优化方法.该方法首先将弱局部性数据集的所有数据页面的访问顺序按页面颜色进行排序,并将所有数据页面按页面颜色进行分组,然后按页面颜色分组的顺序扫描弱局部性数据集的所有数据页面.进一步地,预设若干具有相同页面颜色的内存页面作为页面颜色队列,该页面颜色队列用作内存页面被加载入CPU缓存之前的内存缓存:弱局部性数据集的数据页面首先通过异步方式进入页面颜色队列,然后再被加载到CPU缓存中完成数据处理.本发明能够解决内存数据库应用中无法依赖页面颜色为进程.线程

JS基于时间戳写的浏览访问人数

Title:JS基于时间戳写的浏览访问人数  --2013-12-23 14:07 <script language="JavaScript"> var timestamp,timetmp,rand; rand = Math.floor(Math.random()*10); //随机数 timestamp = new Date().getTime().toString(); //时间戳 timetmp = (parseInt(timestamp)/1000/60).toSt

jmeter访问网址提示403或者forbidden

第一次用jmeter访问公司网址的时候提示的是403错误,截图如下.检查了一下自己填的参数,都是正确的,而且通过浏览器访问也是正常的 自己百度查了,但是没有查出结果来,后来问了朋友才知道原来是网址有做一个保护,即对网站请求源做了保护,如果是来源不明的请求就会拒绝访问,所以需要在jmeter中添加模拟浏览器的信息. 模拟浏览器的信息是存在了User-Agent中,这个参数在百科中的解释:User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版

去除 \ufeff——访问网址或读取文件莫名其妙无法读取错误——raise InvalidSchema(&quot;No connection adapters were found for &#39;%s&#39;&quot; % url) requests.exceptions.InvalidSchema: No connection adapters were found for

raise InvalidSchema("No connection adapters were found for '%s'" % url)requests.exceptions.InvalidSchema: No connection adapters were found for 访问的网址明明没有问题,却报以上的错误,还以为requests库出问题了呢. 细心排查一下你会发现网址前面可能会有\ufeff这个字符,这就是UFT-8编码导致的. 把 UTF-8 编码 改成 UTF-

srping-data学习笔记一(传统方式访问数据库实现和弊端分析)

spring-data是一系列项目的集合,涵盖访问关系型.非关系型等各种数据源的子项目 spring data jpa 关系型 spring data mongo db spring data redis spring data solr 全文检索,基于lucene 其他 使用原始JDBC方式操作数据库 1)创建Maven项目 maven工程的目录结构 添加依赖 <dependency> <groupId>mysql</groupId> <artifactId&g