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

Obsah:

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

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

Video: Ako Zistiť Ip Návštevníka Stránky
Video: Kako saznati tacnu IP adresu 2024, Smieť
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: