Hogyan Lehet Megtudni Az ügyfél Ip-jét

Tartalomjegyzék:

Hogyan Lehet Megtudni Az ügyfél Ip-jét
Hogyan Lehet Megtudni Az ügyfél Ip-jét

Videó: Hogyan Lehet Megtudni Az ügyfél Ip-jét

Videó: Hogyan Lehet Megtudni Az ügyfél Ip-jét
Videó: Barátok, Ismerősök IP Szerzés 2024, November
Anonim

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.

Hogyan lehet megtudni az ügyfél ip-jét
Hogyan lehet megtudni az ügyfél ip-jét

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

}

Ajánlott: