CakePHP附带的getClientIP( )方法有时会返回私有IP。例如127.0.0.1或192.x.x.x等IP。我认为这是由代理引起的。
查看getClientIP( )代码,它确实似乎试图处理代理问题,但它并没有真正检查IP是否是私有的。
获取真实的非私有IP地址的最佳方式是什么?
感谢。
答案 0 :(得分:2)
尝试拨打getClientIp(false)
。如果这不起作用,您可以直接使用$_SERVER["REMOTE_ADDR"]
。它将始终包含实际连接到服务器的外部IP。与用于代理的http标头不同,此地址无法操作。