Benim IP PHP ev sunucusu kadar yanlış gösteriyor

3 Cevap php

Tamam yeteri kadar basit

<?PHP
echo $_SERVER[REMOTE_ADDR];
?>

Tamam, benim IP anda 72.184.212.85, ancak ben bir komut dosyası için bir IP engelleme sistemi üzerinde kullanıyorum yukarıda kod benim IP gösterir belki değil gibi benim ev server 127.0.0.1 IP

Yani benim komut gittiğimde benim IP 127.0.0.1 olarak gösterilir ama diğer web sitelerine gittiğinizde 72.184.212.85 olarak gösterilir

Nasıl ilk değer benim test sunucusu üzerinde göstermek için alabilirim?

3 Cevap

$_SERVER['REMOTE_ADDR'] her istek geldiği IP adresini gösterecektir. Kendi ağı içinde kendi bilgisayarınızda kendi komut dosyası erişmek, harici IP adresi devreye giriyor asla. Istek Yerel ağ bırakın ve daha sonra harici adres göstermek için geri gelmek zorunda kalacak, ama tüm yerel eğer, bu asla olmayacak.

Eğer sunucu kamuya erişilebilir yapmak ve daha sonra kamu adresinden erişmek gerekir. Ben şu anda sunucuya erişmek için localhost kullanarak tahmin ediyorum?

Sunucu bu halkın internete yüzden sonra liman 8080 ve yönlendirici bağlantı noktasını ileri söylüyorlar çalıştırın. Sonra http://72.184.212.85:8080 yerine http://localhost:8080 from web sayfası / PHPScript ziyaret edin.

İşte ben tavsiye etmem saçma bir çözümdür:

Istek URL yoluyla nereden geldiği bir alan adı ile ev IP kaydettirin, sonra bakın:

$url = $_SERVER["SERVER_NAME"];

veya

$url = $_SERVER["HTTP_HOST"];

ve ardından dış IP yani, adına kayıtlı IP döndürmesi gerektiğini sonucu bir dns arama yapmak.

 $ext_ip = gethostbyaddr($url);

The only reason this wouldn't wveyak (so sveyary if I'm wrong), is if SERVER_NAME uses the same method as "REMOTE_HOST", which is a reverse DNS lookup, which won't resolve, as your internal IP won't be registered to that domain name. An easy way to check is to do either:

 phpinfo();

ve çevresel değişkenler ne olduğunu görmek.