Leggyakrabban a webhely látogatójának IP-címét használják azonosítására. De ezen kívül az IP használatával rengeteg kiegészítő információt kaphat a látogatóról - például megtudhatja az internet szolgáltatóját és a földrajzi helyét. A gyakorlatban a szerveroldali PHP szkripteket használják leggyakrabban az IP-címek kinyerésére a böngésző által küldött kérésfejlécekből.
Szükséges
A PHP alapismeretei
Utasítás
1. lépés
A PHP beépített getenv funkciójával olvassa el az IP-címeket a szuperglobális környezeti változó tömbből. A legegyszerűbb esetben elég lesz elolvasni a REMOTE_ADDR nevű változót. A PHP-kód megfelelő része így nézhet ki: $ userIP = getenv ('REMOTE_ADDR');
2. lépés
A kérelemben elküldött REMOTE_ADDR változó mellett ellenőrizze a HTTP_VIA és a HTTP_X_FORWARDED_FOR változókat. Ha a látogató proxykiszolgálót használ, akkor a köztes címet mindkét változóban rögzíteni kell - mind a HTTP_VIA, mind a REMOTE_ADDR fájlban. Ebben az esetben megpróbálhatja kideríteni a látogató valódi IP-jét a HTTP_X_FORWARDED_FOR címen - a proxy szervernek be kell tennie az eredeti címet. Ez azonban nem mindig történik meg, és a felhasználónak lehetősége van kiválasztani egy "átlátszatlan" proxy szervert, amely nem továbbítja a kérést küldő látogató eredeti IP-címét. Mindenesetre minél többféleképpen kell használnia az eredeti IP-cím beolvasását a kódba a HTTP_CLIENT_IP változó ellenőrzésének hozzáadásával.
3. lépés
Összekapcsolja a PHP kód egy sorában három környezeti változó szekvenciális ellenőrzését, amelyek tartalmazhatják a látogató eredeti IP-címét. Ez például így tehető: $ userIP = getenv ('HTTP_CLIENT_IP') VAGY $ userIP = getenv ('HTTP_X_FORWARDED_FOR') VAGY $ userIP = getenv ('REMOTE_ADDR');
4. lépés
Távolítson el további karaktereket és egyéb "szemetet" az így kapott IP-értékből, amelyek bekerülhetnek a környezeti változókba. Ez például a TRIM és a preg_replace beépített PHP függvények használatával történhet: $ userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
5. lépés
Kombinálja az összes kódot egy egyedi függvénybe, hogy hivatkozhasson rá ahelyett, hogy a PHP-szkriptek különböző részein újra és újra megismételné az ellenőrző és a tisztító sorokat. Például így: FUNCTION getUserIP () {
$ userIP = getenv ('HTTP_CLIENT_IP') VAGY $ userIP = getenv ('HTTP_X_FORWARDED_FOR') VAGY $ userIP = getenv ('REMOTE_ADDR');
RETURN TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
}