HTTP 请求头中与 IP 地址相关的信息
Remote_Addr
用来表示发出请求的客户端主机的 IP 地址。
Remove_Addr
无法伪造,因为如果伪造了源 ID,则会导致无法完成 TCP 三次握手,进而无法建立 TCP 连接。
如果没有设置代理,那么 Remove_Addr
为真正的请求源的 IP 地址;如果设置了代理,那么 Remove_Addr
为最后一个代理的 IP 地址。
X-Real-Ip
一个自定义的 Header
。X-Real-Ip
通常被 HTTP 代理用来表示与它产生 TCP 链接的设备 IP,这个设备可能是其他代理,也可能是真正的请求源。
需要注意的是,X-Real-Ip
目前不属于任何标准,代理和 Web 应用之间可以约定用任何自定义的头来传递这个信息。
X-Forwarded-For
用来识别通过 HTTP 代理或负载均衡方式连接到 web 服务器的客户端最原始的 IP 地址的 HTTP 请求头字段。例如:
220.174.210.68, 124.70.126.44, 220.174.210.68
一般来说,最左边的是客户端 IP 地址;代理服务器收到请求后,会把请求来源的 IP 地址添加到右边。
需要注意的是:
- 最后一次代理服务器的地址并没有记录在
X-Forwarded-For
中,若需要构造出完整的代理链路,则需要在X-Forwarded-For
的基础上加上Remote_Addr
X-Forwarded-For
的伪造非常容易,每个代理服务器不会检查之前的X-Forwarded-For
中的 IP 地址,只会将请求来源的 IP 地址添加到右边。
IP 地址相关信息查询网站
从单个 IP 查询对应信息和 IP 段的网站:
根据地址、运营商查询 IP 段的网站: