Cum Se Află Ip-ul Clientului

Cuprins:

Cum Se Află Ip-ul Clientului
Cum Se Află Ip-ul Clientului

Video: Cum Se Află Ip-ul Clientului

Video: Cum Se Află Ip-ul Clientului
Video: Cum iti schimbi Ip-ul 2024, Decembrie
Anonim

Prin adresa IP a unui vizitator al site-ului dvs., puteți afla destul de multe despre el - țară, oraș, nume și adresa de e-mail a furnizorului de internet etc. Dar principala valoare este că IP-ul poate servi drept ID de vizitator pentru scripturile de pe server. Mai jos este descris modul în care puteți determina adresa IP folosind PHP.

Cum se află ip-ul clientului
Cum se află ip-ul clientului

Este necesar

Cunoștințe de bază despre PHP

Instrucțiuni

Pasul 1

Pentru a extrage adresa IP din antetele trimise către serverul de solicitare al browserului, utilizați funcția getenv. Citește valorile specificate din variabilele de mediu. O variabilă numită REMOTE_ADDR este utilizată pentru a stoca adresa IP a vizitatorului. Cu toate acestea, clientul poate utiliza un server proxy, caz în care variabila va conține adresa sa, și nu cea pe care o doriți. Puteți afla că surferul web folosește un IP intermediar uitându-se la variabila de mediu numită HTTP_VIA. Toate adresele serverelor proxy implicate în lanț sunt plasate în acesta, separate prin virgule. Serverele intermediare trebuie să plaseze adresa vizitatorului într-o variabilă numită HTTP_X_FORWARDED_FOR, dar aceasta depinde în totalitate de setările proxy-ului. Aceasta înseamnă că, pentru a acoperi cât mai multe posibilități de determinare a adresei IP, este necesar să verificați conținutul a cel puțin trei variabile: REMOTE_ADDR, HTTP_X_FORWARDED_FOR și, de preferință,

Pasul 2

Puteți combina verificarea tuturor celor trei variabile într-o singură linie de cod PHP, de exemplu, astfel:

$ ipAddr = getenv ('HTTP_CLIENT_IP') sau $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') sau $ ipAddr = getenv ('REMOTE_ADDR');

După ce ați obținut valoarea adresei IP în acest mod, este recomandabil să o eliminați de posibile distorsiuni și caractere inutile. Puteți utiliza o expresie regulată pentru aceasta:

$ ipAddr = trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

Pasul 3

Rămâne să combinați ambele linii de cod într-o singură funcție:

funcția getIP () {

$ ipAddr = getenv ('HTTP_CLIENT_IP') sau $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') sau $ ipAddr = getenv ('REMOTE_ADDR');

return trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

}

Recomandat: