如何在Express.js 中执行IP地理定位查询?
如果您正在使用Express.js构建网站(或 API),了解访问者的来源地很有必要:来自美国、欧盟还是其他地方?定位网络用户的过程通常被称为IP地理定位,然而,这并不容易。
不容易获取IP地理定位数据是因为没有标准的 IP -> 位置数据映射。大多数公司是通过利用IP地理定位聚合器将大量不同的信息拼凑在一起,以建立一个准确IP地理定位数据库。
IP 地理定位数据通常包括:
- WHOIS数据
- 区域互联网注册管理机构
- BGP 源(来自互联网服务提供商)
- 手动收集的延迟信息
简言之:所有的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-geoip与IP Geolocation服务则会变得简单便捷。使用新的 express-simple-geoip 库,您可以轻松构建和管理大型企业网站的IP地理定位查询。
想要了解更多信息,请查看 GitHub 上的 express-simple-geoip 库,您可以以下链接找到所有文档和更详细的信息: https://github.com/whois-api-llc/express-simple-geoip
如果您有任何问题,请给我们发电子邮件!