2015-11-12 3 views
0

Я хочу получить IPv4-адрес, но не адрес localhost (127.0.0.1). Я просто получаю :: 1.IPv4-адрес с PHP

я попробовал с $ip = getenv ("REMOTE_ADDR");

и

$ip = getenv ('SERVER_ADDR'); 
+0

Возможный дубликат [Как получить IP-адрес клиента в PHP] (http://stackoverflow.com/questions/3003145/how-to-get-the-client- ip-address-in-php) – samlev

ответ

1
$ip = $_SERVER['REMOTE_ADDR']; 
+0

с этим я просто получаю :: 1. Любые другие решения? – Valcone

+0

, если вы работаете на localhost 127.0.0.1, это ваш сервер ip. – fico7489

+0

Я знаю, но на веб-сайте моего друга мой ip - это мой настоящий ipv4 ip, и я не знаю, как он это сделал. например. На моем сайте это 127.0.0.1, а на его сайте - 192.xxx. – Valcone

0

Наконец я получил ответ на тот же день. Вы можете увидеть его ниже:

function getIP() { 
    $ip = $_SERVER['SERVER_ADDR']; 

    if (PHP_OS == 'WINNT'){ 
     $ip = getHostByName(getHostName()); 
    } 

    if (PHP_OS == 'Linux'){ 
     $command="/sbin/ifconfig"; 
     exec($command, $output); 
     // var_dump($output); 
     $pattern = '/inet addr:?([^ ]+)/'; 

     $ip = array(); 
     foreach ($output as $key => $subject) { 
      $result = preg_match_all($pattern, $subject, $subpattern); 
      if ($result == 1) { 
       if ($subpattern[1][0] != "127.0.0.1") 
       $ip = $subpattern[1][0]; 
      } 
     //var_dump($subpattern); 
     } 
    } 
    return $ip; 
}