GeoIP简介与资源,定位经纬度,获取用户IP

所谓GeoIP,就是经过来访者的IP,定位他的经纬度,国家/地区,省市,甚至街道等位置信息。这里面的技术不算难题,关键在于有个精准的数据库。有了准确的数据源就奇货可居赚点小钱,但是发扬合做精神,集体贡献众人享用是咱们追求的。
   php

 

Hostip.info提供了一个平台,能够添加已知的数据信息,能够免费获取数据库。同时,提供了简单易用的API,能够获取特定IP的位置信息,还有国家旗帜。API所返回的数据格式,除了最多见的HTML外,还提供了GML格式的,赞!html

http://api.hostip.info/get_html.php?ip=159.226.115.22&position=true 返回HTM格式的数据;git

http://api.hostip.info/?ip=159.226.115.22&position=true 返回GML文件;web

http://api.hostip.info/flag.php?ip=159.226.115.22 返回所在国家或地图的旗帜。(最终是形如http://api.hostip.info/images/flags/cn.gif 格式的图片文件,在Silverlight中没法应用。)
   ajax

 

全面一点的,更加精确一点的数据库,MaxMind GeoIP,不过是收费的。写本文时发现Hostip.info多个页面都有MaxMind的连接,是纯粹的广告,仍是后面是一家子?
      数据库

 

若试图单纯用JavaScript和Silverlight去获取来访者的IP彷佛无法实现,须要借助PHP或者ASP.NET等。但Google同窗有一款API:google.loader.ClientLocation, 能够经过JavaScript获取到来访客户的位置信 息:ClientLocation.latitude,ClientLocation.longitude,ClientLocation.address.city,ClientLocation.address.country,ClientLocation.address.country_code,ClientLocation.address.region。 (为何没给出IP属性呢?)
     api

 

其实,Hostip的API中若不给定IP,那么返回的就是访问者IP的位置信息,试试:app

http://api.hostip.info/get_html.php?position=true
      ide

 

正当一周前俺犹豫上述内容过于简单,而迟于整理成为博客的次日,从ESRI Code Gallery的示例GeoIPLocator中挖掘到它所利用的服务 支持更多的操做,好比能够直接从域名来获取位置信息,返回的国家旗帜是jpg格式的(http://marceloctorres.net/espiadns/images/flags/cn.jpg )。借助oxygen xml editor的WSDL SOAP分析器,对该服务进行分析,能够查看它支持4个操做,并能够试试发送请求及其返回的信息。google

 


     

 

 

UPDATE2010/5/4: 再增长一个API提供者: http://ipinfodb.com/ Are you looking for the geographical location of an IP address? You are at the right place. We offer a wide range of free services based on our IP address geolocation database:

 

 

 

 

 

  • Web based IP geolocation lookup
  • IP geolocation API (XML, JSON and CSV format)
  • API that generate IP CIDR by country for iptables or htaccess blocklist
  • E-commerce fraud detection API
  • IP database updated monthly!     

 

PS:谁有免费的WSDL SOAP分析器推荐一下?

PS2:若是下载运行GeoIPLocator的源码,除Silverlight的开发环境外,须要ESRI Silverlight的库。更重要的,若是你不是Windows 7 OS,须要更改web.config文件,或者干脆从新引入一下上述服务。

PS3:Nikhil Kothari提供了相似的地图定位小示例,直接提取了hostip返回的HTML信息,并定位在Bing Maps Silverlight Control上。

PS4:相对最先,Scott Hanselman介绍了如何用ASP.NET使用hostip的API,以及用LINQ解析hostip返回的GML信息。同时Nikhil和它都提到了google.loader.ClientLocation。

PS5:顺便发现 google.load API挺好用,能够在Visual Studio里使用jQuery的智能提示,用Google来托管jQuery文件。

相关文章
相关标签/搜索