Node.js |开发者库 | IP 地理定位API | WhoisXML API

Node.js IP地理定位客户端库 Node.js IP地理定位客户端库

如何在Node.js中运行IP地理定位查询?

在本文中,我将向您介绍使用 Node.js(也称为IP地理定位)。

可是,并没有标准的方法来确定 IP地址的物理位置。IP地理定位服务提供商将许多不同的数据放在一起,以构建一个准确的 IP 位置数据库。

IP 地理定位数据通常包括:

  • 域名WHOIS 数据(其本身必须由数据提供商汇总)
  • 区域互联网注册管理机构,向世界各地的各种互联网服务提供商分发大量 IP 地址( ISPs )
  • 来自大型互联网服务提供商的BGP源
  • 延迟信息(来自某些物理位置的数据包到达目标 IP 需要多长时间)

如自己获取上述所有信息非常复杂且昂贵,但值得庆幸的是,有一些服务提供商已经完成信息汇总,并为用户提供方便使用的IP地理定位数据。

现在我们将向您展示如何使用新发布的simple-geoipNode.js库来执行IP地理定位数据库查询,并返回您可能想要查询的任何IP地址的物理位置。

创建一个IP地理定位API 查询帐号

使用 simple-geoip 库,首先是创建一个免费的IP地理定位API 帐号: https://ip-geolocation.whoisxmlapi.com/signup

IP地理定位API是IP地理定位最大最便宜的服务提供商。用户可以使用IP地理定位API服务运行每月 1,000 次免费IP地理定位查询,或者支付每月 27 美元1000次查询的固定费用。点击此处可查看额外的价格计划。

当您创建并登录到IP地理定位API 帐户后,可查看帐户的产品页面并复制获取 API 密钥——稍后可用密钥来运行IP地理定位查询。

安装 simple-geoip 包

账户设置好后,安装以下安装包。从命令行运行以下命令:

            
$ npm 安装 simple-geoip
            
            

将从 NPM下载并安装最新版本的simple-geoip安装包。

使用 simple-geoip 运行IP地理定位查询

现在您已经拥有一个帐户并安装了 simple-geoip 包,接下来可以运行一些代码来查询您想要的任何 IP 地址的物理地址。

这是一个小脚本`geoip.js` ,它将找到常用 IP 地址( `8.8.8.8` ,Google 的核心 DNS 服务器之一)的物理位置:

            
const IpGeolocation = require("simple-geoip");
 


let ipGeolocationLookup  = new IpGeolocation("your-api-key");

ipGeolocationLookup.lookup("8.8.8.8", (err, data) => {
   if (err) throw err;

   console.log(data);

});
            
            

如您所见,使用该数据库只需三个步骤:

  • 导入库
  • 提供您在注册时的API 密钥来创建一个“IpGeolocation”对象。
  • 运行`lookup`方法,导入要验证的 IP 地址和回调函数。此回调函数将在IP地理定位查询中已完成。

回调中返回的数据将如下所示:

            
{
   "ip": "8.8.8.8",
   "location": {
      "country": "US",
      "region": "California",
      "city": "Mountain View",
      "lat": 37.40599,
      "lng": -122.078514,
      "postalCode": "94043",
      "timezone": "-08:00"
   }
}
            
            

此 JSON 数据告诉您有关“8.8.8.8” IP 地址物理位置的所有信息。

在后台, IP地理定位API服务正在处理所有IP地理定位数据库查询和数据聚合——从供应商处获取数据并每天处理数百万次更新。

自定义IP 地理定位 simple-geoip 中的查询行为

simple-geoip Node.js 库的优势之一是数据库可以最多五次连续自动重试失败的请求。

例如,您正在尝试执行一个IP地理定位查询请求,突然网络连接中断。 simple-geoip查询并不会简单地报错,而是会重试请求连接。

如果您更喜欢 simple-geoip 库 *not* 重试失败的请求,您可以在创建`IpGeolocation`查询时传入一些可选的配置数据,如下所示:

            
const IpGeolocation = require("simple-geoip");



let ipGeolocationLookup  = new IpGeolocation("your-api-key", { retries: 2 });

ipGeolocationLookup.lookup("8.8.8.8", (err, data) => {

   if (err) throw err;

   console.log(data);

});
            
            

您可以将“重试”次数设置为“0”至您想要的数量之间的任意数字。但是,需谨记:您允许的重试次数越多,在失败的情况下请求的速度就越慢。

虽然重试在解决部分网络中断时很便捷,但如果您遇到严重的网络中断,最好尽早出错而避免浪费大量时间重试失败的请求。默认重试行为(五次重试)对于大多数人来说通常是一个不错的选择。

使用新的IP地理定位数据

现在用户可以轻松使用 simple-geoip 库查找 IP 地址的物理位置,快快开始运用IP地理定位查询所需的产品或服务吧!

一些常见的IP地理定位数据使用案例包括:

  • 在用户访问您的网站时检测他们所在的国家/地区,并根据他们的位置(语言、广告、设计、货币等)为他们提供定制的体验
  • 阻止来自某些特定位置的用户访问您的网站。例如,如果您是视频流媒体提供商并且仅有权在特定国家/地区传输视频, IP地理定位查询服务可以为您提供该数据,并仅为合法经营地区的客户提供服务。
  • 欺诈和规避风险。如果注意到来自特定位置的大量欺诈,暂时阻止来自该位置的访问者可以快速地减少欺诈和其他问题。

通过分析您网站访问者的 IP 地址,可极大地增强任何网络产品和服务。

使用simple-geoip

总结一下:运行IP地理定位查询并不难或昂贵。使用我们新的https://github.com/whois-api-llc/php-simple-geoip PHP 库和IP 地理定位 API服务,你可轻松构建和管理一个大型的网络产品。

如需执行IP地理定位查询,请查看simple-geoip库,会让IP地址位置信息查询变得非常简单。

如果您有任何问题,请联系我们