获取连接到您网站的远程客户端的IP地址的最可靠方法是什么?我研究过的一些选项是:
我正在考虑的另一件事是让客户端通过HTTPS连接,在这种情况下应该绕过代理(一般来说),因此REMOTE_ADDR会准确。
有什么想法吗?
答案 0 :(得分:1)
任何客户端(javascript,java)都会为您提供PC的IP地址。这可能是内部IP地址,如10.0.0.1。
Re:SSL + REMOTE_ADDR,大多数工作场代理通过应用程序级别代理发送所有SSL,SOME只允许443出站。通过代理进入的任何东西仍然会给你代理地址,因为代理仍然是连接到你的网络服务器的计算机。
答案 1 :(得分:1)
如果客户端正在通过代理,您将不得不依赖代理来告诉您他们的IP。 X-Forwarded-For标头将包含此标题,但如果您信任该代理,则只能依赖此标头。如果这是用于记录目的,请记录REMOTE_ADDR和X-Forwarded-For。如果是其他内容,则需要维护代理白名单(由REMOTE_ADDR确定),您将接受X-Forwarded-For。