2015-04-14 4 views
1

Я использую $_SERVER['REMOTE_ADDR'] в php, чтобы найти ip address клиента.

$ipaddress=$_SERVER['REMOTE_ADDR']; 

echo $ipaddress; 

возвращающие :: 1

Я также попытался следующий код, но это дает мне тот же результат, как хорошо.

if ($_SERVER['HTTP_CLIENT_IP']) 
    $ipaddress = $_SERVER['HTTP_CLIENT_IP']; 
else if($_SERVER['HTTP_X_FORWARDED_FOR']) 
    $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR']; 
else if($_SERVER['HTTP_X_FORWARDED']) 
    $ipaddress = $_SERVER['HTTP_X_FORWARDED']; 
else if($_SERVER['HTTP_FORWARDED_FOR']) 
    $ipaddress = $_SERVER['HTTP_FORWARDED_FOR']; 
else if($_SERVER['HTTP_FORWARDED']) 
    $ipaddress = $_SERVER['HTTP_FORWARDED']; 
else if($_SERVER['REMOTE_ADDR']) 
    $ipaddress = $_SERVER['REMOTE_ADDR']; 
else 
    $ipaddress = 'UNKNOWN'; 

Что я делаю неправильно? Как я могу получить клиентов ip?

Я бы использовал ip, чтобы найти его местоположение через ipinfo.io.

Спасибо за ваше время.

+0

':: 1' действителен ipv6 localhost address –

+0

Когда я использую' $ idaddress' в скрипте, чтобы получить местоположение с помощью 'ipinfo.io', я получаю' undefined property: stdclass :: $ country'. В любом случае мне нужно полный IP-адрес – Coder

ответ

3

::1 - это фактический IP-адрес. Это адрес ipv6 (то есть localhost). Если вы использовали ipv4, это было бы 127.0.0.1.

Если вы хотите получить другой IP-адрес, вам нужно будет подключиться к серверу через другой сетевой интерфейс.

+0

Когда я использую '$ idaddress' в скрипте для получения местоположения с помощью' ipinfo.io', я получаю 'undefined property: stdclass :: $ country'. – Coder

+0

Если я поставлю этот же скрипт на сервер сейчас, будет ли он работать и дать мне полный IP-адрес? – Coder

+0

Да, пожалуйста, проверьте файл хозяина. –

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