Ako Zistiť Ip Návštevníka Stránky

Ako Zistiť Ip Návštevníka Stránky
Ako Zistiť Ip Návštevníka Stránky
Anonim

Najčastejšie sa na jeho identifikáciu používa IP adresa návštevníka stránky. Okrem toho však pomocou protokolu IP môžete získať veľa ďalších informácií o návštevníkovi - napríklad zistiť jeho poskytovateľa internetu a geografické umiestnenie. V praxi sa na extrahovanie adries IP z hlavičiek požiadaviek odosielaných prehliadačom najčastejšie používajú skripty PHP na strane servera.

Ako zistiť ip návštevníka stránky
Ako zistiť ip návštevníka stránky

Je to nevyhnutné

Základné znalosti PHP

Inštrukcie

Krok 1

Na načítanie adries IP z poľa premenných superglobálneho prostredia použite vstavanú funkciu getenv PHP. V najjednoduchšom prípade bude stačiť prečítať premennú s názvom REMOTE_ADDR. Zodpovedajúca časť kódu PHP môže vyzerať takto: $ userIP = getenv ('REMOTE_ADDR');

Krok 2

Okrem premennej REMOTE_ADDR zaslanej v žiadosti skontrolujte premenné HTTP_VIA a HTTP_X_FORWARDED_FOR. Pokiaľ návštevník používa proxy server, musí byť sprostredkujúca adresa zaznamenaná v oboch premenných - v HTTP_VIA aj REMOTE_ADDR. V takom prípade sa môžete pokúsiť zistiť skutočnú IP adresu návštevníka cez HTTP_X_FORWARDED_FOR - proxy server do nej musí vložiť pôvodnú adresu. Nie vždy sa to však deje, a používateľ má možnosť zvoliť si „nepriehľadný“server proxy, ktorý neprenáša pôvodnú adresu IP návštevníka, ktorý žiadosť odoslal. V každom prípade by ste mali použiť čo najviac spôsobov, ako získať pôvodnú adresu IP v kóde, a to pridaním kontroly premennej

Krok 3

Spojte do jedného riadku kódu PHP postupnú kontrolu troch premenných prostredia, ktoré môžu obsahovať pôvodnú IP adresu návštevníka. Môžete to urobiť napríklad takto: $ userIP = getenv ('HTTP_CLIENT_IP') OR $ userIP = getenv ('HTTP_X_FORWARDED_FOR') OR $ userIP = getenv ('REMOTE_ADDR');

Krok 4

Z výslednej hodnoty adresy IP, ktorá sa môže dostať do premenných prostredia, odstráňte nadbytočné znaky a ďalší „odpad“. To je možné urobiť napríklad pomocou zabudovaných funkcií PHP TRIM a preg_replace: $ userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));

Krok 5

Spojte všetok kód do vlastnej funkcie, aby ste na ňu mohli odkazovať namiesto opakovania kontrolných a čistiacich riadkov znova a znova v rôznych častiach vašich skriptov PHP. Napríklad takto: FUNKCIA getUserIP () {

$ userIP = getenv ('HTTP_CLIENT_IP') ALEBO $ userIP = getenv ('HTTP_X_FORWARDED_FOR') ALEBO $ userIP = getenv ('REMOTE_ADDR');

RETURN TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));

}

Odporúča: