PHP getenv ('REMOTE_ADDR') ciddi yan etkiler?

2 Cevap php

Ben onlara coğrafya içerik alakalı göstermek için kullanıcıların IP adresini çekmeye çalışıyorum. Ben php kodu $ ip = getenv ('REMOTE_ADDR') kullanılır; IP adresini kapmak için. Bu benim bilgisayarda çalışıyor ama benim co-geliştirici denedim ve o tüm sitemizde bağlanamıyor ve bir "Ana Erişilebilir değil" hata var bulundu. O sıra ya da onun evinde başka bir bilgisayardan FTP üzerinden sitemize bağlanamıyor.

Ben bu kodu çıkardı ve hâlâ ebil'bağlamak (ancak bir proxy kullanarak olabilir). Bu kod bu yan etkileri var neden merak ediyorum. $ _SERVER ('REMOTE_ADDR') 'dir. Nedir PHP bir kullanıcının IP adresini kapmak için en iyi yolu nedir?

Teşekkürler

Russ

2 Cevap

http://thephpcode.blogspot.com/2009/01/php-getting-secondary-internet-protocol.html

function getIP() {
  $IP = '';
  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;
}

En azından bu kod böylece ISS yakınlık ve arkasındaki kullanıcıların bile size gerçek IP adresini alır.

Ben co-geliştiriciler DNS veya / etc / hosts kurulum suçlarlar.