通过IP地址Nodejs mongodb查找位置

时间:2018-03-08 12:37:56

标签: node.js mongodb

我正在尝试查找IP地址的位置。 IP地址将通过前端android / iOS应用程序发送到API(我目前正在使用我的计算机的静态IP地址)。我想使用客户端IP地址来确定它们可能的物理位置,并将位置发送到MongoDB进行存储。任何有关这方面的帮助将不胜感激。提前谢谢。

2 个答案:

答案 0 :(得分:3)

您可以利用GeoIP-lite从IP地址获取地理数据。

var geoip = require('geoip-lite');

var ip = "207.97.227.239";
var geo = geoip.lookup(ip);

console.log(geo);
/*{ range: [ 3479297920, 3479301339 ],
  country: 'US',
  region: 'TX',
  city: 'San Antonio',
  ll: [ 29.4889, -98.3987 ],
  metro: 641,
  zip: 78218 }*/

答案 1 :(得分:1)

您可以使用freegeoip.net

freegeoip.net/{format}/{IP_or_hostname}

示例GET http://freegeoip.net/json/207.97.227.239

{
  ip: "207.97.227.239",
  country_code: "US",
  country_name: "United States",
  region_code: "TX",
  region_name: "Texas",
  city: "San Antonio",
  zip_code: "78218",
  time_zone: "America/Chicago",
  latitude: 29.4889,
  longitude: -98.3987,
  metro_code: 641
}

限制:

  

默认情况下,每小时最多允许10,000次查询。达到此限制后,您的所有请求都将导致HTTP 403被禁止,直到您的配额被清除。

     

freegeoip web服务器是免费的开源软件,所以如果公共服务限制对您来说是个问题,请下载并运行您自己的实例。

如果您只需要国家/地区精确度,则可以使用cloudflare ip geoloc,它会在请求中添加标头,因此无需额外的API调用。