Kõige sagedamini kasutatakse tema tuvastamiseks saidikülastaja IP-aadressi. Kuid lisaks sellele saate IP-d kasutades külastaja kohta palju lisateavet - näiteks saate teada tema Interneti-teenuse pakkuja ja geograafilise asukoha. Praktikas kasutatakse IP-aadresside väljavõtmiseks brauseri saadetud päringute päistest kõige sagedamini serveripoolseid PHP-skripte.
See on vajalik
Põhiteadmised PHP-st
Juhised
Samm 1
Kasutage PHP sisseehitatud funktsiooni getenv, et lugeda ülimaailmse keskkonna muutuja massiivi IP-aadresse. Lihtsamal juhul piisab muutuja nimega REMOTE_ADDR lugemisest. Vastav PHP-kooditükk võib välja näha järgmine: $ userIP = getenv ('REMOTE_ADDR');
2. samm
Lisaks päringus saadetud muutujale REMOTE_ADDR kontrollige muutujaid HTTP_VIA ja HTTP_X_FORWARDED_FOR. Kui külastaja kasutab puhverserverit, tuleb vaheaadress salvestada mõlemasse muutujasse - nii HTTP_VIA kui ka REMOTE_ADDR. Sellisel juhul võite proovida teada saada külastaja tegelikku IP-d HTTP_X_FORWARDED_FOR kaudu - puhverserver peab sinna sisestama algse aadressi. Kuid seda ei tehta alati ja kasutajal on võimalus valida "läbipaistmatu" puhverserver, mis ei edasta päringu saatnud külastaja algset IP-d. Igal juhul peaksite algse IP-aadressi saamiseks koodis kasutama nii palju võimalusi kui võimalik, lisades muutuja HTTP_CLIENT_IP tšeki.
3. samm
Liitke ühes PHP-koodi reas kolme keskkonnamuutuja järjestikune kontroll, mis võib sisaldada külastaja algset IP-aadressi. Seda saab teha näiteks järgmiselt: $ userIP = getenv ('HTTP_CLIENT_IP') VÕI $ userIP = getenv ('HTTP_X_FORWARDED_FOR') VÕI $ userIP = getenv ('REMOTE_ADDR');
4. samm
Eemaldage saadud IP-väärtusest lisamärgid ja muu "prügi", mis võib sattuda keskkonnamuutujatesse. Seda saab teha näiteks sisseehitatud PHP-funktsioonide TRIM ja preg_replace abil: $ userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
5. samm
Kombineerige kogu kood kohandatud funktsiooniks, et saaksite sellele viidata, selle asemel, et oma PHP-skriptide erinevates osades kontroll- ja puhastusjooni korrata. Näiteks selline: FUNCTION getUserIP () {
$ userIP = getenv ('HTTP_CLIENT_IP') VÕI $ userIP = getenv ('HTTP_X_FORWARDED_FOR') VÕI $ userIP = getenv ('REMOTE_ADDR');
RETURN TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
}