问题描述
作为插件作者,我的插件将用于许多不同的服务器配置。如果插件需要检索代理背后的真实用户 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 (将#修改为@)