编译几乎所有代理标头以检索真实用户IP?

问题描述

作为插件作者,我的插件将用于许多不同的服务器配置。如果插件需要检索代理背后的真实用户 IP,并且代理是 Cloudflare 等已知代理,我可以使用安静的 simple function 来检索 IP 地址。

但是如果我不知道哪个代理到位(如果有一个正在使用),它会变得更加困难。所以插件需要一个(几乎)完整的代理标头列表来测试,直到插件检索到一个有效的用户 IP 地址。此外,我需要确保插件以正确的顺序测试代理标头。如果我先测试 REMOTE_ADDR,它将返回一个有效的 IP,但它将是代理的 IP,而不是用户的 IP。

(我知道,IP 地址可以被欺骗。目标不是 100% 获得正确的 IP,而是尽可能接近。)

这是我目前能够收集到的代理标头列表。我不确定它们是否都相关,或者顺序是否理想。

请查看并添加/删除代理头并优化列表顺序:

$proxy_headers = [
    'HTTP_CF_CONNECTING_IP',// Cloudflare
    'HTTP_TRUE_CLIENT_IP',// Cloudflare Enterprise
    'HTTP_INCAP_CLIENT_IP',// Incapsula
    'HTTP_X_SUCURI_CLIENTIP',// Sucuri
    'HTTP_FASTLY_CLIENT_IP',// Fastly
    'HTTP_X_FORWARDED_FOR',// any proxy
    'HTTP_X_FORWARDED','HTTP_X_CLUSTER_CLIENT_IP','HTTP_FORWARDED_FOR','HTTP_FORWARDED','HTTP_CLIENT_IP','REMOTE_ADDR'
];

如果您找到指向其中一个代理标头的文档链接,如果您可以将其添加链接列表中,那就太好了。这是我找到的。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)