实践使用nodejs获取用户真实IP?

Posted 刨根

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实践使用nodejs获取用户真实IP?相关的知识,希望对你有一定的参考价值。

先上代码

var http = require(‘http‘)
var server = http.createServer(function (req,res) {
	console.log(req.headers[‘x-forwarded-for‘] ); // 判断是否有反向代理
	console.log(req.socket.remoteAddress ); 	  // 判断后端的 socket 的 IP
	let ip = req.headers[‘x-forwarded-for‘] || req.socket.remoteAddress
	res.end(ip)
})
server.listen(‘9098‘)

x-forwarded-for是什么?

X-Forwarded-For 是一个扩展header头。HTTP/1.1(RFC 2616)协议并没有对它的定义,用来表示 HTTP 请求端真实 IP,现在已经成为事实上的标准,被各大 HTTP 代理、负载均衡等转发服务广泛使用,并被写入 RFC 7239(Forwarded HTTP Extension)标准之中.

由人为设置

一些代理服务器会设置一些消息头,比如nginx会在转发请求的时候可以带上这个消息头,向应用服务传递客户端的真是IP

以上是关于实践使用nodejs获取用户真实IP?的主要内容,如果未能解决你的问题,请参考以下文章

为啥NodeJs获取客户端的IP都是这样的

为啥NodeJs获取客户端的IP都是这样的

PHP如何获取用户的真实IP?

获取CDN用户真实IP

如何获取网站用户的真实IP

Java中使用HttpRequest获取用户真实IP地址端口