Il mio IP è sbagliato nel server di casa PHP

Ok abbastanza semplice

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

Ok forse no, I il mio IP è attualmente 72.184.212.85 tuttavia il codice sopra il quale sto usando su un sistema di block IP per uno script mostra il mio IP come il mio IP del server di casa di 127.0.0.1

Quindi quando vado al mio script il mio IP viene mostrato come 127.0.0.1 ma quando vado su altri siti web viene mostrato come 72.184.212.85

Come posso get il primo valore da mostrare sul mio server di prova?

$_SERVER['REMOTE_ADDR'] mostrerà sempre l'indirizzo IP da cui proviene la richiesta. Se accedi al tuo script sul tuo computer all'interno della tua networking, il tuo indirizzo IP esterno non entra mai in gioco. La richiesta dovrebbe lasciare la tua networking locale e poi tornare per vedere l'indirizzo esterno, ma se è tutto locale, non succederà mai.

Dovrai rendere il tuo server accessibile al pubblico e quindi accedervi dall'indirizzo pubblico. Suppongo che stai usando localhost per accedere al tuo server?

avvia il tuo server dire la port 8080 e poi inoltra la port nel tuo router in modo che sia pubblica su Internet. Quindi visita la tua pagina web / phpscript da http://72.184.212.85:8080 anziché http: // localhost: 8080 .

Ecco una soluzione ridicola che non consiglierei:

Registra il tuo IP di casa con un nome di dominio, quindi vedi where la richiesta proviene da URL:

 $url = $_SERVER["SERVER_NAME"]; 

o

 $url = $_SERVER["HTTP_HOST"]; 

e quindi eseguire una ricerca DNS di quel risultato, che dovrebbe restituire l'IP a cui è registrato, ovvero il tuo IP esterno.

  $ext_ip = gethostbyaddr($url); 

L'unica ragione per cui questo non functionrebbe (mi dispiace se ho torto), è se SERVER_NAME usa lo stesso metodo di "REMOTE_HOST", che è una ricerca DNS inversa, che non si risolverà, poiché il tuo IP interno non essere registrato a quel nome di dominio. Un modo semplice per controllare è fare una delle due cose:

  phpinfo(); 

e vedere quali sono le variables ambientali.