最好的node.js模块用于查找位置?

我find了几个node.js模块,用于使用ip地址查找有关客户机位置和networking的信息。

要求:

  1. 位置 – 国家,城市,州,纬度,经度等

  2. networking – 互联网服务提供商,互联网连接types和互联网速度等

  3. 数据准确性 – 最大的可能性。

注意:寻找服务器端解决scheme。

上面提到的模块使用maxmind数据 。 而且我也读过有关maxmind数据的准确性 。

我有点困惑,select上述node.js模块,我想知道有没有更好的node.js框架可用于查找信息符合我的要求或任何其他语言插件可以移植到node.js。

任何想法将是伟大的。

使用基于IP的地理定位是可能的,但不是很准确。 因此,我build议您考虑采用混合方法,比如尝试通过浏览器中的HTML5地理位置API获取用户位置,并在必要时将其退回到服务器端。

我查看了可用于node.js的两个最常用的geoip / -location模块,它们都使用MaxMind提供的数据集。 AFAIK你必须保持这些数据库手动,这是一个明确的下行。 所以你可以考虑写一个小的同步服务/脚本,每月更新一次数据库。 (关于MaxMinds免费解决scheme的更多信息可以在这里find)。

kuno/GeoIP是一个GeoIP绑定,所以它的核心是使用libGeoIP C库,这是可以的,但可能不像bluesmoon/node-geoip提供的纯JavaScript实现那样可移植。 两者都是好的,这取决于你更喜欢哪个图书馆。 在性能方面,你必须做一些benchmakrs(如果这个话题对你很重要)…这个问题没有一般的答案,哪种types的模块(C-binding / native)会更快。

如果你愿意花几块钱,你也可以看看MaxMinds Web服务 ,这是一个简单的REST API,将是最精确的方法。 文档是相当不错的 – 所以开始这不会是一个问题。

如果您获得IP,您可以随时调用外部服务来获取freegeoip.net的位置信息以及使用请求模块。

 (ip, location) -> url = 'http://freegeoip.net/json/' + ip request.get url, (error, response, body) -> if !error && response.statusCode == 200 data = JSON.parse body location data 

对于networking信息,我没有解决scheme,但我也在寻找一个解决scheme。

你可以在http://ipinfo.io API从我的API获取所有的信息:

 $ curl ipinfo.io { "ip": "67.188.232.131", "hostname": "c-67-188-232-131.hsd1.ca.comcast.net", "city": "Mountain View", "region": "California", "country": "US", "loc": "37.4192,-122.0574", "org": "AS7922 Comcast Cable Communications, Inc.", "postal": "94043" } 

它支持JSONP和CORS,所以你可以使用它在服务器端或客户端。 更多细节可在http://ipinfo.io/developers上find