跳到正文

阿里云使用 SLB 如何获取用户真实地址?

网友提供6 条回复

阿里云使用 SLB 如何获取用户真实地址?

参考文档: https://help.aliyun.com/document_detail/54007.html

当用户正常请求的时候可以解析出真实的地址,已经对阿里云内部 IP 进行白名单验证。

但是,用户自行伪造 x-forwarded-for 的时候,那么用户真实 IP 的地址将会自动附加到最后面。

curl -H "X-Forwarded-For: 107.186.12.3, 102.37.36.6, 16.7.3.4" https://xxx.com
[HTTP_X_FORWARDED_FOR] => 107.186.12.3, 102.37.36.6, 16.7.3.4, 14.152.49.160

回复

C0reFast

使用 4 层负载均衡,直接拿 clientIp 就是用户发起 tcp 连接的那个真实客户端地址。

ChoateYao

@opengps 自行伪造的情况下面和正常请求根本没有办法区分。你张嘴就来取最后一个,将来出了问题,你们是要负责任的,明白吗?

ChristopherWu

@xyjincan 毛遂自荐,请参考我这篇文章: https://yonghaowu.github.io/2018/11/23/get_reql_ip/

xyjincan

,,,啥原理

odirus

从左到右找到第一个不是内网地址的 IP

opengps

你自己都说了,最后的是真实 ip,那就写代码截取吧

↑