Molto spesso, per identificarlo viene utilizzato l'indirizzo IP di un visitatore del sito. Ma oltre a questo, utilizzando l'IP, puoi ottenere molte informazioni aggiuntive sul visitatore, ad esempio scoprire il suo provider Internet e la sua posizione geografica. In pratica, gli script PHP lato server vengono spesso utilizzati per estrarre gli indirizzi IP dalle intestazioni delle richieste inviate dal browser.
È necessario
Conoscenza di base di PHP
Istruzioni
Passo 1
Usa la funzione getenv incorporata di PHP per leggere gli indirizzi IP dall'array di variabili di ambiente superglobale. Nel caso più semplice sarà sufficiente leggere la variabile denominata REMOTE_ADDR. Il pezzo di codice PHP corrispondente potrebbe essere simile a questo: $ userIP = getenv ('REMOTE_ADDR');
Passo 2
Oltre alla variabile REMOTE_ADDR inviata nella richiesta, controlla le variabili HTTP_VIA e HTTP_X_FORWARDED_FOR. Se il visitatore utilizza un server proxy, l'indirizzo intermedio deve essere registrato in entrambe le variabili, sia in HTTP_VIA che in REMOTE_ADDR. In questo caso, puoi provare a scoprire l'IP reale del visitatore tramite HTTP_X_FORWARDED_FOR - il server proxy deve inserire l'indirizzo originale. Tuttavia, ciò non avviene sempre e l'utente ha la possibilità di selezionare un server proxy "opaco" che non trasmette l'IP originale del visitatore che ha inviato la richiesta. In ogni caso, dovresti usare quanti più modi possibili per ottenere l'indirizzo IP originale nel tuo codice aggiungendo un segno di spunta per la variabile
Passaggio 3
Concatena in una riga di codice PHP un controllo sequenziale di tre variabili d'ambiente, che possono contenere l'indirizzo IP originale del visitatore. Questo può essere fatto, ad esempio, in questo modo: $ userIP = getenv ('HTTP_CLIENT_IP') OR $ userIP = getenv ('HTTP_X_FORWARDED_FOR') O $ userIP = getenv ('REMOTE_ADDR');
Passaggio 4
Rimuovi i caratteri extra e altri "spazzatura" dal valore IP risultante che potrebbero entrare nelle variabili di ambiente. Questo può essere fatto, ad esempio, utilizzando le funzioni PHP integrate TRIM e preg_replace: $ userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ IPutente));
Passaggio 5
Combina tutto il codice in una funzione personalizzata in modo che tu possa fare riferimento ad esso invece di ripetere le righe di controllo e pulizia più e più volte in diverse parti dei tuoi script PHP. Ad esempio, in questo modo: FUNZIONE getUserIP () {
$ userIP = getenv ('HTTP_CLIENT_IP') O $ userIP = getenv ('HTTP_X_FORWARDED_FOR') O $ userIP = getenv ('REMOTE_ADDR');
RETURN TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
}