获取用户IP地址的三种属性分别是REMOTE_ADDR、HTTP_VIA和HTTP_X_FORWARDED_FOR。它们之间的区别在于,在不同类型的代理服务器下,它们所记录的IP地址不同。
- 没有使用代理服务器的情况:
- REMOTE_ADDR: 记录的是访问者的实际IP地址。
- HTTP_VIA: 没有数值或者不显示。
- HTTP_X_FORWARDED_FOR: 没有数值或者不显示。
- 使用透明代理服务器的情况:
- REMOTE_ADDR: 记录的是最后一个代理服务器的IP地址。
- HTTP_VIA: 记录的是代理服务器的IP地址。
- HTTP_X_FORWARDED_FOR: 记录的是访问者的实际IP地址,如果有多个代理服务器,则会显示一系列IP地址,最后一个是实际IP。
- 使用普通匿名代理服务器的情况:
- REMOTE_ADDR: 同上。
- HTTP_VIA: 记录的是代理服务器的IP地址。
- HTTP_X_FORWARDED_FOR: 记录的是代理服务器的IP地址,而不是访问者的实际IP。
- 使用欺骗性代理服务器的情况:
- REMOTE_ADDR: 记录的是代理服务器的IP地址。
- HTTP_VIA: 记录的是代理服务器的IP地址。
- HTTP_X_FORWARDED_FOR: 随机显示一个IP地址,与访问者的真实IP无关。
- 使用高匿名代理服务器的情况:
- REMOTE_ADDR: 同上。
- HTTP_VIA: 没有数值或者不显示。
- HTTP_X_FORWARDED_FOR: 没有数值或者不显示。
总结来说,REMOTE_ADDR通常记录的是直接访问者的IP地址,但在使用代理服务器的情况下,它会记录最后一个代理服务器的IP地址。HTTP_VIA和HTTP_X_FORWARDED_FOR则根据代理服务器的不同类型,记录不同的信息。HTTP_VIA通常显示代理服务器的IP地址,而HTTP_X_FORWARDED_FOR在经过多个代理服务器时,会显示一系列的IP地址,第一个是访问者的实际IP,如果是使用高匿名代理,则可能都不显示。
原创文章,作者:Ur47000,如若转载,请注明出处:https://wyc.retuba.cn/4635.html