A webhely látogatójának IP címe alapján elég sokat megtudhat róla - ország, város, az internetszolgáltató neve és e-mail címe stb. De a fő érték az, hogy az IP látogatóazonosítóként szolgálhat a kiszolgálóoldali szkriptekhez. Az alábbiakban bemutatjuk, hogyan határozhatja meg az IP-címet a PHP használatával.
Szükséges
A PHP alapismeretei
Utasítás
1. lépés
Az IP-cím kibontásához a böngésző kérés-kiszolgálójára küldött fejlécekből használja a getenv függvényt. Kiolvassa a környezeti változókból a számára megadott értékeket. A REMOTE_ADDR nevű változót a látogató IP-címének tárolására használják. Az ügyfél azonban használhat proxykiszolgálót, ebben az esetben a változó tartalmazza a címét, és nem a kívánt címet. Megtudhatja, hogy a webes szörfös köztes IP-t használ, ha megnézi a HTTP_VIA nevű környezeti változót. A láncban részt vevő proxy szerverek minden címét vesszővel elválasztva helyezik el benne. A közbenső szervereknek a látogató címét a HTTP_X_FORWARDED_FOR nevű változóba kell tenni, de ez teljes mértékben a proxy beállításaitól függ. Ez azt jelenti, hogy az IP-cím meghatározásának lehető legtöbb lehetőségének fedezéséhez legalább három változó tartalmát ellenőriznie kell: REMOTE_ADDR, HTTP_X_FORWARDED_FOR, és lehetőleg
2. lépés
Kombinálhatja mindhárom változó ellenőrzését egy PHP-kódsorba, például:
$ ipAddr = getenv ('HTTP_CLIENT_IP') vagy $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') vagy $ ipAddr = getenv ('REMOTE_ADDR');
Miután így megszerezte az IP-cím értékét, ajánlatos törölni az esetleges torzulásoktól és a felesleges karakterektől. Ehhez használhat reguláris kifejezést:
$ ipAddr = trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
3. lépés
Marad, hogy mindkét kódsort egyetlen funkcióba egyesítsük:
függvény getIP () {
$ ipAddr = getenv ('HTTP_CLIENT_IP') vagy $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') vagy $ ipAddr = getenv ('REMOTE_ADDR');
return trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
}