经过排查后发现tp5和tp6的获取ip方法存在差异,获取出来的地址可能并非真实客户端地址:
tp6获取ip方法:
request()->ip();
tp5获取ip方法:
request()->ip();
经过验证,将两种方式调用后,输出如下:
^ "tp6: 100.121.83.181"
^ "tp5: 113.87.129.206"
明显,tp6的方法获取到的是保留地址
在源码中,tp5先获取的是HTTP_X_FORWARDED_FOR, 这个获取到的是客户端真实地址, 而tp6是先获取REMOTE_ADDR, 如果服务开启负载, 多半获取到的是代理服务器的地址, 即你看到的并非真实ip地址,而是保留地址
最佳答案
