Teie saidi külastaja IP-aadressi järgi saate tema kohta üsna palju teada - riik, linn, Interneti-teenuse pakkuja nimi ja e-posti aadress jne. Kuid peamine väärtus on see, et IP-d saab kasutada serveripoolsete skriptide külastaja ID-na. Allpool on kirjeldatud, kuidas saate IP-aadressi PHP abil kindlaks määrata.
See on vajalik
Põhiteadmised PHP-st
Juhised
Samm 1
IP-aadressi väljavõtmiseks brauseri päringuserverisse saadetud päistest kasutage funktsiooni getenv. See loeb keskkonnamuutujatelt talle määratud väärtused. Muutuja nimega REMOTE_ADDR kasutatakse külastaja IP-aadressi salvestamiseks. Klient saab siiski kasutada puhverserverit, sel juhul sisaldab muutuja oma aadressi, mitte soovitud aadressi. Saate teada, et veebisurfar kasutab vahepealset IP-d, vaadates keskkonnamuutujat nimega HTTP_VIA. Kõik ahelas osalevate puhverserverite aadressid paigutatakse sellesse komadega eraldatult. Vaheserverid peavad külastaja aadressi panema muutujasse nimega HTTP_X_FORWARDED_FOR, kuid see sõltub täielikult puhverserveri seadetest. See tähendab, et IP-aadressi määramise võimalikult paljude võimaluste katmiseks peate kontrollima vähemalt kolme muutuja sisu: REMOTE_ADDR, HTTP_X_FORWARDED_FOR ja eelistatavalt
2. samm
Kõigi kolme muutuja kontrollimise saab kombineerida näiteks üheks PHP-koodi reaks:
$ ipAddr = getenv ('HTTP_CLIENT_IP') või $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') või $ ipAddr = getenv ('REMOTE_ADDR');
Olles sel viisil saanud IP-aadressi väärtuse, on soovitatav see puhastada võimalikest moonutustest ja tarbetutest märkidest. Selleks saate kasutada regulaaravaldist:
$ ipAddr = trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
3. samm
Jääb ühendada mõlemad koodiread üheks funktsiooniks:
funktsioon getIP () {
$ ipAddr = getenv ('HTTP_CLIENT_IP') või $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') või $ ipAddr = getenv ('REMOTE_ADDR');
tagasilõige (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
}