Come Scoprire L'ip Del Cliente?

Sommario:

Come Scoprire L'ip Del Cliente?
Come Scoprire L'ip Del Cliente?

Video: Come Scoprire L'ip Del Cliente?

Video: Come Scoprire L'ip Del Cliente?
Video: Come scoprire indirizzo ip 2024, Aprile
Anonim

Con l'indirizzo IP di un visitatore del tuo sito, puoi scoprire molto su di lui: paese, città, nome e indirizzo e-mail del provider Internet, ecc. Ma il valore principale è che l'IP può fungere da ID visitatore per gli script lato server. Di seguito viene descritto come è possibile determinare l'indirizzo IP utilizzando PHP.

Come scoprire l'ip del cliente?
Come scoprire l'ip del cliente?

È necessario

Conoscenza di base di PHP

Istruzioni

Passo 1

Per estrarre l'indirizzo IP dalle intestazioni inviate al server di richiesta del browser, utilizzare la funzione getenv. Legge i valori ad esso specificati dalle variabili d'ambiente. Una variabile denominata REMOTE_ADDR viene utilizzata per memorizzare l'indirizzo IP del visitatore. Tuttavia, il client può utilizzare un server proxy, nel qual caso la variabile conterrà il suo indirizzo e non quello desiderato. Puoi scoprire che il navigatore web sta usando un IP intermedio guardando la variabile d'ambiente chiamata HTTP_VIA. In essa vengono inseriti tutti gli indirizzi dei server proxy coinvolti nella catena, separati da virgole. I server intermedi devono inserire l'indirizzo del visitatore in una variabile denominata HTTP_X_FORWARDED_FOR, ma questo dipende interamente dalle impostazioni del proxy. Ciò significa che per coprire il maggior numero possibile di possibilità di determinazione dell'indirizzo IP, è necessario verificare il contenuto di almeno tre variabili: REMOTE_ADDR, HTTP_X_FORWARDED_FOR e preferibilmente

Passo 2

Puoi combinare il controllo di tutte e tre le variabili in una riga di codice PHP, ad esempio, in questo modo:

$ ipAddr = getenv ('HTTP_CLIENT_IP') o $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') o $ ipAddr = getenv ('REMOTE_ADDR');

Ottenuto in questo modo il valore dell'indirizzo IP, è consigliabile ripulirlo da possibili distorsioni e caratteri non necessari. Puoi usare un'espressione regolare per questo:

$ ipAddr = trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

Passaggio 3

Resta da combinare entrambe le righe di codice in un'unica funzione:

funzione getIP() {

$ ipAddr = getenv ('HTTP_CLIENT_IP') o $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') o $ ipAddr = getenv ('REMOTE_ADDR');

return trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

}

Consigliato: