微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决编译几乎所有代理标头以检索真实用户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 举报,一经查实,本站将立刻删除。