最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to use "x-forwarded-for" in Node.js (without Express if possible) - Stack Overflow

programmeradmin0浏览0评论

For my current project, I need to get the remote IP address in a Node.js http.createServer((req,res)=>{}); function. I've tried looking through the API documentation for Node.js itself, with no luck, then turning to Google, with most answers appearing to use Express.js. The answers seemed to point at req.connection.remoteAddress (which works, but breaks if used with a proxy) or req.headers['x-forwarded-for'], however this returned undefined when I tried to use it. Any help is greatly appreciated.

For my current project, I need to get the remote IP address in a Node.js http.createServer((req,res)=>{}); function. I've tried looking through the API documentation for Node.js itself, with no luck, then turning to Google, with most answers appearing to use Express.js. The answers seemed to point at req.connection.remoteAddress (which works, but breaks if used with a proxy) or req.headers['x-forwarded-for'], however this returned undefined when I tried to use it. Any help is greatly appreciated.

Share Improve this question asked Dec 15, 2019 at 5:39 LostEth0LostEth0 1442 silver badges11 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 7

You almost had it, try:

var clientip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;

This will set clientip to the correct value if a proxy is used. If no proxy is used, clientip gets set to the ip address of the client initiating the connection.

'connection' is deprecated. since v13.0.0 - Use socket instead.

const clientip = req.headers['x-forwarded-for'] || req.socket.remoteAddress;
发布评论

评论列表(0)

  1. 暂无评论