添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
发呆的春卷  ·  定价 - Red Hat 虚拟机 | ...·  2 月前    · 
淡定的玉米  ·  肇州县_百度百科·  6 月前    · 
愉快的铁链  ·  招生动态-北外学院·  10 月前    · 
果断的汽水  ·  react-redux Hook API ...·  1 年前    · 
Node.js 中的 Web 框架提供了一个 Request 对象,其中包含来自请求实例的信息。 Request 对象通常包括请求客户端的 IP 地址。 如果我们想对请求用户进行地理定位,IP 地址会很有帮助。

本篇文章将介绍如何从 Node.js 中的请求实例中获取客户端 IP 地址。

获取请求中的 IP 地址 请求可以携带不同位置的客户端IP地址。 例如,它可能存储在 HTTP 请求标头(如 x-forwarded-for )中、request对象的属性(如 request.connection、request.socket、request.info 或 request.raw)中。

无服务器环境提供请求上下文。 例如,在使用 AWS API Gateway 的 AWS Lambda 函数中,我们可能将 IP 地址存储在带有 sourceIp 的身份属性中。

@supercharge/request-ip 包简化了检索请求 IP 地址的过程。 它检查几十个可能的位置并返回找到的 IP 地址。

首先,将包安装为项目的依赖项:

$ npm install @supercharge/request-ip 然后,继续从请求对象中检索 IP 地址,如下所示:

const RequestIp = require ( '@supercharge/request-ip' ) const ip = RequestIp . getClientIp (request) 将请求对象传递给 RequestIp.getClientIp(request) 函数,它会返回 IP 地址(如果没有找到,则返回未定义)。

在 Express/hapi/Fastify/Koa/Co 等框架中检测 IP 地址。 根据自己选择的 Web 框架和用例,可能需要在中间件或路由处理程序中检索 IP 地址。

下面是两个基本示例,展示了如何在 Express 中间件和 hapi 路由处理程序中检索 IP 地址:

简单的 Express 中间件示例

const RequestIp = require ( '@supercharge/request-ip' ) const expressMiddleware = function ( req, res, next ) { req. ip = RequestIp . getClientIp (req) next () 简单的 hapi 路由处理程序示例:

const Hapi = require ( '@hapi/hapi' ) const RequestIp = require ( '@supercharge/request-ip' ) const server = new Hapi . Server ({ host : 'localhost' server. route ({ method : 'GET' , path : '/login' , handler : ( request, h ) => { const ip = RequestIp . getClientIp (request) return h. response (ip) 从请求实例中检索客户端的 IP 地址时, @supercharge/request-ip 包会很有用!

好了,上面就是在 Node.js 中获取客户端请求的IP地址的方式。

  • Node Stream 流(二)流的四种基本类型
  • 如何使用 Node.js 在 TypeScript 中创建全局变量
  • Node.js 中 TypeError [ERR_IMPORT_ASSERTION_TYPE_MISSING]
  • Node.js [ERR_PACKAGE_PATH_NOT_EXPORTED]: No exports 错误
  • 在 MacOS 中完全卸载 Node.js
  • Node.js 堆内存不足
  • 在 Node.js 中解析 Json
  • 在 Node JS 中生成唯一 ID
  •