我有一个在 Node.js 上编写的 Azure 函数。我如何检索调用该函数的客户端的 IP 地址?
到目前为止我发现了什么:
可以从标题中读取它:
module.exports = function (context, req) {
var ip = req.headers['x-forwarded-for']
}
通过这种方式获取 IP 是否可靠,因为它可以在调用函数的过程中轻松更改?
是的,它是可靠的,因为Azure Web服务器将覆盖x-forwarded-for,因为它知道它是从负载均衡器转发的。
对于那些在 2025 年使用 Azure Function 模型 v4 和 NodeJS 18 阅读本文的人:
request.headers
当前返回一个带有 javascript Map 的对象,后者包含标头列表。要获取标头值,请使用 Map.get() 方法:request.headers.get('x-forwarded-for')