Node.js 获取用户真实IP

前言

微信H5支付时候需要获取用户的真实IP,如果代码中报的IP与微信获取的IP不一致,那么此时微信就会报错。通常Node.js部署时候是通过Nginx本地转发,所以获取真实IP时候需要做以下配置。

Nginx配置

# 只转发test
location /test/ {
    proxy_pass http://localhost:3000/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Real-Port $remote_port;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

Node.Js获取IP代码

首先本着避免造轮子的原则,使用了request-ip库。

    # 锁定版本号
    npm i request-ip --save --save-exact

然后就要获取IP了,以上都是准备工作

    var requestIp = require('request-ip');
    var IP = requestIp.getClientIp(req),

可以愉快地微信支付了。

--EOF--

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容