You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Microsoft.Azure.Functions.Worker.Http的HttpRequestData如何获取远程IP地址

在.NET 5及以上版本的Azure Function独立工作进程模型中,可以正常获取请求的远程IP信息,该信息默认存储在HttpRequestData对象的Headers属性中,无需从FunctionContext中读取。

Azure Function平台在转发请求到函数工作进程时,会自动将客户端原始IP写入X-Forwarded-For请求头,你可以直接从请求头中提取该值:

  • X-Forwarded-For头的格式为客户端IP, 代理1IP, 代理2IP...,取第一个逗号前的内容即可得到真实的远程请求IP。

参考实现代码如下:

public static HttpResponseData Run(
    [HttpTrigger(AuthorizationLevel.Function, "post")] HttpRequestData req, FunctionContext executionContext)
{
    // 从请求头读取X-Forwarded-For获取远程IP
    if (req.Headers.TryGetValues("X-Forwarded-For", out var forwardedIps))
    {
        var remoteIp = forwardedIps.FirstOrDefault()?.Split(',')[0].Trim();
        // 此处可添加IP记录、校验等逻辑
    }
    
    // 其他业务逻辑
}

注:本地运行Function调试时没有平台代理层,默认不会携带X-Forwarded-For头,可手动在测试请求中添加该头模拟生产环境表现。也可以通过解析FunctionContext中的绑定上下文拿到IP信息,但操作复杂度远高于直接读取Headers属性,不推荐使用。

内容的提问来源于stack exchange,提问作者jbjon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 01:18:02