如何在节点中确定用户的IP地址

如何在节点中确定用户的IP地址

如何从控制器内确定给定请求的IP地址?例如(以明示方式):

app.post('/get/ip/address', function (req, res) {
    // need access to IP address here})


守候你守候我
浏览 1167回答 3
3回答

HUWWW

在你的request对象有一个名为connection,这是net.Socket对象。nets.ocket对象具有一个属性remoteAddress因此,您应该能够通过以下调用获得IP:request.connection.remoteAddress见文件http和网在注释中指出的那样,如果服务器位于代理后面,获取远程IP的正确方法是request.headers['x-forwarded-for']

凤凰求蛊

var ip = req.headers['x-forwarded-for'] ||       req.connection.remoteAddress ||       req.socket.remoteAddress ||      (req.connection.socket ? req.connection.socket.remoteAddress : null);注意,有时您可以在req.headers['x-forwarded-for']..另外,x-forwarded-for头将不会总是被设置,这可能会抛出一个错误。该领域的一般格式是:X-转发-用于: client, proxy1, proxy2, proxy3其中值是一个逗号+分隔的IP地址列表,其中最左边的是原始客户端,并且每个传递请求的连续代理都添加了它接收请求的IP地址。在本例中,请求通过proxy1, proxy2,然后proxy3. proxy3显示为请求的远程地址。这是阿纳夫·古普塔修复马丁已在以下评论中对下列情况提出建议:x-forwarded-for未设置:var ip = (req.headers['x-forwarded-for'] || '').split(',').pop() ||           req.connection.remoteAddress ||           req.socket.remoteAddress ||           req.connection.socket.remoteAddress

慕侠2389804

如果用快车.。req.ip我在查这个,然后我就像在等,我在用快车。呃。
打开App,查看更多内容
随时随地看视频慕课网APP