如何通过 Amazon API Gateway (JAVA) 检索用户的公共 IP 地址
Posted
技术标签:
【中文标题】如何通过 Amazon API Gateway (JAVA) 检索用户的公共 IP 地址【英文标题】:How can I retrieve a user's public IP address via Amazon API Gateway (JAVA) 【发布时间】:2021-08-11 22:11:47 【问题描述】:在 Cloudfront 的帮助下使用自定义策略创建签名 URL,并在策略中添加客户端 IP 和到期日期限制。为了测试我的代码,我在 java 代码中硬编码了我的公共 ipv4。我如何动态地做到这一点。我创建了一个程序
URL whatismyip = new URL("http://checkip.amazonaws.com"); BufferedReader in = new BufferedReader(new InputStreamReader( whatismyip.openStream()));
String ip = in.readLine(); //you get the IP as a String return ip+"/32";
在本地,它返回准确的输出,但是当我在我的开发层上运行它时,它返回的是集群的 IP,而不是用户的 IP。如何在我的集群上获取用户 Ip。
【问题讨论】:
【参考方案1】:您可以在X-Forwarded-For
标头中找到客户端的IP 地址,如the Cloudfront documentation 中所述。
在How to get client IP of requests via CloudFront?中也可以找到关于如何提取正确地址的详细说明。
【讨论】:
以上是关于如何通过 Amazon API Gateway (JAVA) 检索用户的公共 IP 地址的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Cognito 令牌传递给 Amazon API Gateway?
如何对 Amazon API Gateway 终端节点进行 CNAME
如何将参数从 POST 从 Amazon API Gateway 传递到 AWS Lambda
ELB 和 ECS 集群前的 Amazon API Gateway