2015-06-24 5 views
0

Я использую следующий код:

echo $_SERVER["REMOTE_ADDR"]; 

Я вторит мой IP-адрес в качестве 108.162.225.189, который находится где-то в США. Мой фактический IP-адрес: 59.179.64.246. Это потому, что я использую cloudFlare? CloudFlare также говорит

CloudFlare находится между вашим посетителем и веб-сервером. Таким образом, подключаемый IP-адрес CloudFlare имеет значение только для любых программ, которые читают журналы непосредственно с вашего веб-сервера (например, awstats).

Является ли CloudFlare причиной этой проблемы? Как я могу получить правильный IP-адрес?

ответ

0

Да, IP-адрес (108.162 ...) является IP-адресом CloudFlare. Но CloudFlare должен предоставлять дополнительную информацию. Попробуйте это:

$ip = 
    isset($_SERVER["HTTP_CF_CONNECTING_IP"])? 
    $_SERVER["HTTP_CF_CONNECTING_IP"]: 
    $_SERVER["REMOTE_ADDR"] 
    ; 
echo $ip; 

Дополнительная информация: https://support.cloudflare.com/hc/en-us/articles/200170856-How-do-I-restore-original-visitor-IP-with-vBulletin-

0

Вы обычно не видите свой адрес без фокусов из-за Cloudflare прокси.

Но в любом случае, вы можете попытаться схватить его следующий сценарий

if(isset($_SERVER['HTTP_CF_CONNECTING_IP'])){ 
$ip = $_SERVER['HTTP_CF_CONNECTING_IP']; 
}else{ 
$ip=$_SERVER['REMOTE_ADDR']; 
} 

Позвольте мне знать, если он работает. Источник: http://wp2x.com/get-cloudflare-visitor-ips-php/

Смежные вопросы