2013-11-11 3 views
2

Я использовалКак получить общедоступный IP-адрес клиента, используя php?

if(!empty($_SERVER['HTTP_CLIENT_IP'])) 
{ 
     //check ip from share internet 
     $ip = $_SERVER['HTTP_CLIENT_IP']; 
    } 
else if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) 
{ 
     //to check ip is pass from proxy 
     $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; 
    } 
else{ 
     $ip = $_SERVER['REMOTE_ADDR']; 
    } 

echo $ip; 

, чтобы получить IP-адрес клиента

Это работает, когда я проверить это на моем локальном сервере, но когда я загрузить мои файлы на удаленный сервер, где я хостинг моего веба это забирающее мой сервер ip-адрес не клиент ip

+0

Возможно ли, что клиент, с которым вы протестировали, находится на том же компьютере, на котором находится ваш сервер? Я использую точно такую ​​же функцию, и она дает правильные результаты мне –

+0

Я думаю, что он уже ответил здесь http://stackoverflow.com/questions/3003145/how-to-get-client-ip-address-in-php и здесь http://stackoverflow.com/questions/1634782/what-is-the-most-accurate-way-to-retrieve-a-users-correct-ip-address-in-php?rq=1 – user2633780

ответ

1

Возможно, ваш сервер находится за внутренним прокси-сервером или балансировщиком нагрузки. Попробуйте использовать мою библиотеку PHP Utilities Functions, у которой есть код для этого.

+0

Спасибо, он работает. –

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