Kuidas Teada Saada Kliendi Ip-d

Sisukord:

Kuidas Teada Saada Kliendi Ip-d
Kuidas Teada Saada Kliendi Ip-d

Video: Kuidas Teada Saada Kliendi Ip-d

Video: Kuidas Teada Saada Kliendi Ip-d
Video: КАМЕРЫ СНЯЛИ СНЕЖНОГО ЧЕЛОВЕКА 3 НОЧИ В СТРАШНОМ ЛЕСУ CAMERAS CAPTURED BIGFOOT 2024, Detsember
Anonim

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.

Kuidas teada saada kliendi ip-d
Kuidas teada saada kliendi ip-d

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));

}

Soovitan: