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

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

如何在Express.js 中执行IP地理定位查询? 

如果您正在使用Express.js构建网站(或 API),了解访问者的来源地很有必要:来自美国、欧盟还是其他地方?定位网络用户的过程通常被称为IP地理定位,然而,这并不容易。

不容易获取IP地理定位数据是因为没有标准的 IP -> 位置数据映射。大多数公司是通过利用IP地理定位聚合器将大量不同的信息拼凑在一起,以建立一个准确IP地理定位数据库。

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

简言之:所有的IP地理定位数据的获得都必须经过IP地理定位聚合器。

今天,我将向您介绍如何使用express-simple-geoip开发者库在 Express.js 中查找轻松查询IP地理定位。

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

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

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

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

安装 express-simple-geoip 安装包

账户设置好后,接下来安装express-simple-geoip NPM library。从命令行运行以下命令:

            
$ npm 安装 express-simple-geoip
            
            

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

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

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

这是一个简单的 Express.js 应用程序,它只包含一个端点`/test` ,返回到一个简单的 hello world 响应:

            
"use strict";

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

let app = express();

app.use(IpGeolocation("<your-api-key-here>"));

app.get("/test", (req, res) => {
  res.json({ hello: "world" });
});

app.listen(3000);
            
            

如果将此代码放入`server.js`文件并运行,当您访问浏览器中的`/test`端点时,您应该会看到一个 hello world 响应。

`app.use`行初始化 IpGeolocation 中间件,这样每次新请求进入您的 Express.js 服务器时,一个IP Geolocation 将执行查找并将新的“req.geoip”对象添加到请求中。

访问IP Geolocation 代码中的数据,您可以像这样简单地引用`req.geoip`对象:

            
"use strict";

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

let app = express();

app.use(IpGeolocation("<your-api-key-here>"));

app.get("/test", (req, res) => {
  res.json({ hello: "world", geoip: req.geoip });
});

app.listen(3000);
            
            

如果运行这个新服务器并在浏览器中访问`/test` URL,您应该会看到如下所示的新响应:

            
{
  "hello": "world",
  "geoip": {
    "country": "US",
    "region": "California",
    "city": "Mountain View",
    "lat": 37.40599,
    "lng": -122.078514,
    "postalCode": "94043",
    "timezone": "-08:00"
  }
}
            
            

如上述所见, “req.geoip”数据对象包含请求者的所有IP地理定位数据!`req.geoip`对象包含用户需要了解的有关请求者物理位置的所有信息。

如何使用IP地理定位数据

现在用户已经可以轻松使用Express.js 应用程序查询 IP 地址的物理位置,可通过以下方式享用IP地理定位中的项目和服务数据:

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

总结 express-simple-geoip

总结一下:运行IP地理定位查询可能很棘手,使用express-simple-geoipIP Geolocation服务则会变得简单便捷。使用新的 express-simple-geoip 库,您可以轻松构建和管理大型企业网站的IP地理定位查询。

想要了解更多信息,请查看 GitHub 上的 express-simple-geoip 库,您可以以下链接找到所有文档和更详细的信息: https://github.com/whois-api-llc/express-simple-geoip

如果您有任何问题,请给我们发电子邮件