Php 编译(几乎)所有代理标头以检索真实用户ip?
作为插件作者,我的插件将用于许多不同的服务器配置。如果插件需要检索代理后面的真实用户IP,而代理是一个已知的代理,如Cloudflare,我可以使用quiet来检索IP地址 但如果我不知道哪个代理已经就位(如果正在使用的话),这就变得更加困难了。因此,插件需要一个(几乎)完整的代理头列表进行测试,直到插件检索到有效的用户IP地址。我还需要确保插件以正确的顺序测试代理头。如果我先测试Php 编译(几乎)所有代理标头以检索真实用户ip?,php,ip-address,Php,Ip Address,作为插件作者,我的插件将用于许多不同的服务器配置。如果插件需要检索代理后面的真实用户IP,而代理是一个已知的代理,如Cloudflare,我可以使用quiet来检索IP地址 但如果我不知道哪个代理已经就位(如果正在使用的话),这就变得更加困难了。因此,插件需要一个(几乎)完整的代理头列表进行测试,直到插件检索到有效的用户IP地址。我还需要确保插件以正确的顺序测试代理头。如果我先测试REMOTE\u ADDR,它将返回一个有效的IP,但它将是代理的IP,而不是用户的IP (我知道,IP地址可以被欺
REMOTE\u 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'
];
如果您找到一个指向其中一个代理标题的文档链接,如果您可以将其添加到链接列表中,那就太好了。这是我找到的