Com Esbrinar La IP Del Client

Taula de continguts:

Com Esbrinar La IP Del Client
Com Esbrinar La IP Del Client

Vídeo: Com Esbrinar La IP Del Client

Vídeo: Com Esbrinar La IP Del Client
Vídeo: KOMPYUTERIZDA IP ADRES BERISH.ИП АДРЕС БЕРИШ. 2024, Maig
Anonim

Mitjançant l'adreça IP d'un visitant del vostre lloc, podeu obtenir moltes coses sobre ell: país, ciutat, nom i adreça de correu electrònic del proveïdor d'Internet, etc. Però el valor principal és que la IP pot servir com a identificador de visitant per als scripts del servidor. A continuació es descriu com podeu determinar l'adreça IP mitjançant PHP.

Com esbrinar la IP del client
Com esbrinar la IP del client

És necessari

Coneixements bàsics de PHP

Instruccions

Pas 1

Per extreure l'adreça IP de les capçaleres enviades al servidor de sol·licituds del navegador, utilitzeu la funció getenv. Llegeix els valors que se li especifiquen a partir de les variables d'entorn. S'utilitza una variable anomenada REMOTE_ADDR per emmagatzemar l'adreça IP del visitant. Tanmateix, el client pot utilitzar un servidor intermediari, en aquest cas la variable contindrà la seva adreça i no la que voleu. Podeu esbrinar que el internauta utilitza una IP intermèdia en mirar la variable d’entorn anomenada HTTP_VIA. Totes les adreces dels servidors intermediaris implicats a la cadena hi són col·locades, separades per comes. Els servidors intermedis han de situar l'adreça del visitant en una variable anomenada HTTP_X_FORWARDED_FOR, però això depèn completament de la configuració del servidor intermediari. Això significa que, per cobrir tantes possibilitats de determinar l'adreça IP com sigui possible, heu de comprovar el contingut d'almenys tres variables: REMOTE_ADDR, HTTP_X_FORWARDED_FOR i preferiblement

Pas 2

Podeu combinar la comprovació de les tres variables en una línia de codi PHP, per exemple, així:

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

Després d’haver obtingut el valor de l’adreça IP d’aquesta manera, és recomanable esborrar-la de possibles distorsions i caràcters innecessaris. Podeu utilitzar una expressió regular per a això:

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

Pas 3

Queda per combinar les dues línies de codi en una sola funció:

funció getIP () {

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

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

}

Recomanat: