Как получить IP-адрес моей системы - PullRequest
0 голосов
/ 15 декабря 2010

Как получить IP-адрес моей системы?

Я использую $ip_address=$_SERVER[REMOTE_ADDR];, но он возвращает мой локальный IP-адрес вместо IP-адреса моей системы.

Ответы [ 4 ]

2 голосов
/ 15 декабря 2010

$_SERVER['SERVER_ADDR']

См. php документы для полного списка вещей, которые вы можете найти в $_SERVER superglobal.

2 голосов
/ 15 декабря 2010

Если вы обращаетесь к локальному серверу, то ваш локальный IP-адрес - это удаленный IP-адрес. PHP дает вам правильный ответ.

Если вы хотите узнать свой IP-адрес для остального интернета, перейдите в Google и введите «what is my ip».

1 голос
/ 15 декабря 2010

Эта функция будет определять реальный IP-адрес:

function ipCheck() {
    if (getenv('HTTP_CLIENT_IP')) {
        $ip = getenv('HTTP_CLIENT_IP');
    }
    elseif (getenv('HTTP_X_FORWARDED_FOR')) {
        $ip = getenv('HTTP_X_FORWARDED_FOR');
    }
    elseif (getenv('HTTP_X_FORWARDED')) {
        $ip = getenv('HTTP_X_FORWARDED');
    }
    elseif (getenv('HTTP_FORWARDED_FOR')) {
        $ip = getenv('HTTP_FORWARDED_FOR');
    }
    elseif (getenv('HTTP_FORWARDED')) {
        $ip = getenv('HTTP_FORWARDED');
    }
    else {
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}
0 голосов
/ 13 декабря 2013

Поздний ответ, но я надеюсь, что он все еще может кому-то помочь.Мне понадобился системный IP для проекта, поэтому я быстро выбрал пользовательскую функцию с помощью регулярных выражений.Он работает на Ubuntu Linux (и технически должен работать на любом дистрибутиве / версии Linux).

function getLocalIp(){
    $output = shell_exec('/sbin/ifconfig');        
    preg_match("/inet?[[:space:]]?addr:([0-9.]+)/", $output, $matches);
    if(isset($matches[1]))
        $ip = $matches[1];
    else
        $ip = 0;
    return $ip;
}

Требуется:

  • выполнение системного вызова с использованием shell_exec.
  • с использованием регулярных выражений для поиска значения внутреннего IP-адреса.

Если вам случится создать что-то подобное для окон или улучшить функциональность этой функции, пожалуйста, поделитесь своим кодом с остальными из нас.

...