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

如何从AWS Lambda Function URL获取客户端IPv4地址?

问题分析与解决

为什么只获取到IPv6地址

你的设备同时支持IPv4和IPv6,但现代浏览器/操作系统在双栈网络环境下会优先选择IPv6链路发起请求。当你访问Lambda Function URL时,客户端实际是通过IPv6连接的,所以Lambda收到的请求源IP自然只有IPv6地址——整个请求链路从始至终都是IPv6协议,不会携带IPv4相关信息。

解决方案

1. 强制客户端使用IPv4访问

如果需要测试IPv4地址的获取,可通过以下方式强制客户端走IPv4链路:

  • 修改本地hosts文件,将Lambda Function URL的域名映射到对应的IPv4地址(可通过nslookup <你的Lambda URL域名>获取其IPv4地址)
  • 使用支持强制IPv4的工具或浏览器插件发起请求

2. 服务端双栈兼容说明

Lambda Function URL本身默认支持双栈访问,无需额外配置。只要客户端通过IPv4发起请求,x-forwarded-for和sourceIp字段就会返回对应的IPv4地址。

3. 验证客户端连接协议

你可以在客户端确认请求实际使用的协议:

  • 打开浏览器开发者工具的「网络」面板,查看请求的「远程地址」,如果是IPv6格式(如[2600:1f18:446c:xxxx:xxxx]),说明确实是通过IPv6连接的。

附:优化后的测试代码(更易查看IP信息):

import json

def lambda_handler(event, context):
    return {
        'statusCode': 200,
        'body': json.dumps({
            'x-forwarded-for': event['headers'].get('x-forwarded-for'),
            'sourceIp': event['requestContext']['http']['sourceIp']
        })
    }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 14:13:18