Вопрос по php – IP-адрес машины в PHP дает :: 1, но почему?

29

Я пытаюсь получить IP-адрес моей машины через php. Для этого я пишу код как:

<?php echo  "<br />".$_SERVER['REMOTE_ADDR'];?>

Но этот кусок кода не работает. Это возвращается & quot;::1& Quot ;. Пожалуйста, помогите мне, как получить фактический IP-адрес.

$_SERVER['REMOTE_ADDR'] это не IP-адрес вашей машины. hakre
::1 фактический IP. Это адрес обратной связи ipv6 (т.е. localhost) Quentin
:: 1 - псевдоним для localhost Hajo
Возможные дубликаты:Identify server IP address with PHP - или если вам нужна другая вещь -How do I find a user's IP address with PHP? hakre
Из какой машины? Ваш сервер, на котором работает PHP? Ваш рабочий стол, на котором работает браузер, подключающийся к серверу? Quentin

Ваш Ответ

6   ответов
-2

phpinfo(), Если адрес не на этой странице, то адрес не доступен напрямую через PHP.

Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededisError: User Rate Limit Exceededis notError: User Rate Limit Exceeded
-1

Попробуйте запустить

function getUserIpAddr(){
    if(!empty($_SERVER['HTTP_CLIENT_IP'])){
        //ip from share internet
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    }elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
        //ip pass from proxy
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }else{
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

echo 'User Real IP - '.getUserIpAddr();

в реальном сервере. Или вы также можете использовать онлайн-php executor.

50

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

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

Error: User Rate Limit Exceeded John
2

$ _SERVER ["SERVER_ADDR"] - это IP-адрес сервера.

Ссылка:http://php.net/manual/en/reserved.variables.server.php

6

вы можете сделать что-то вроде:

<?php
    if(!empty($_SERVER['HTTP_CLIENT_IP'])){
      $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
      $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else{
      $ip=$_SERVER['REMOTE_ADDR'];
    }
?>

<?php echo  "<br />".$ip;?>

Он получит фактический IP-адрес пользователя, независимо от прокси и т. Д.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded$_SERVER['REMOTE_ADDR']Error: User Rate Limit Exceeded::1Error: User Rate Limit Exceeded
7

этот ответ решит вашу проблему. Всего несколько изменений

apache2/httpd.conf 

поиск по всему & quot; прослушать & quot; слова например:

Listen 80

Сделай так.

Listen 127.0.0.1:80

чем перезагрузить апач

$_SERVER[REMOTE_ADDR]

покажетListen 127.0.0.1

Вы можете увидеть ответ в этомподробный ответ по ссылке

Похожие вопросы