Php IP adresini alma

4 Cevap

Benim locolhost üzerinde IP adresi almak için bu kod ve ben olsun

::1

sonuç

kodu:

function ip()
{
  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'];
  }
  return $ip;            
}

echo ip();

hata nerede?

Aslında, ben ülkeyi almak istiyorum & Ben IP ... Başka bir çözüm olsun şehir adı sonra?

Teşekkürler

4 Cevap

Roland @ gibi bir IPv6 adresi yazıyor. Eğer uygulamanızda IPv6 kullanarak niyetinde değilseniz o zaman IPv6 port dinlemeyi durdurmak için web sunucusu söylemelidir. Eğer bir istek gönderdiğinizde bu işe yaramazsa istemci daha sonra geri IPv4 düşecek ilk IPv6 çalışacağız ve arayan çok daha tanıdık 127.0.0.1 almalısınız.

:: 1 IPv6 terminolojiyi kullanarak, localhost için steno, yani çalışıyor. Hostnamenizi kullanarak bağlanmayı deneyin ve adres değişikliği daha açık bir adres olmayı görmelisiniz ...

Aşağıdaki kullanabilirsiniz:

    $server_address = $_SERVER['SERVER_ADDR'];
    $port_used = $_SERVER['SERVER_PORT'];
    $ip_address = $_SERVER['REMOTE_ADDR'];

// on my test machine this gives the following results:

    $server_address = 127.0.0.1
    $port_used = 80
    $ip_address = 127.0.0.1


Edited: Ben orijinal cevap gönderilmektedir sonra 'til fark olmadığını, sorunun coğrafi konum yönü dahil etmek.

Rather than repeat answers found elsewhere, I'll first link to this (well-answered) SO question: google-geolocation-api-library, and then to the Google results page for the search terms geolocation php site:stackoverflow.com, which links to many other -probably relevant- answers that might better address your questions than I'm able.

Eğer ($ _SERVER) print_r Eğer neye benzediğini, ne mevcuttur bilgilerin göreceksiniz, ve hangi alanlar boş olabilir.