Как да разберете Ip на посетител на сайта

Съдържание:

Как да разберете Ip на посетител на сайта
Как да разберете Ip на посетител на сайта

Видео: Как да разберете Ip на посетител на сайта

Видео: Как да разберете Ip на посетител на сайта
Видео: Как определить IP адрес пользователя 2024, Ноември
Anonim

Най-често за идентификацията му се използва IP адресът на посетител на сайта. Но освен това, използвайки IP, можете да получите много допълнителна информация за посетителя - например да разберете неговия доставчик на интернет и географското местоположение. На практика PHP скриптове от страна на сървъра най-често се използват за извличане на IP адреси от заглавките на заявките, изпратени от браузъра.

Как да разберете ip на посетител на сайта
Как да разберете ip на посетител на сайта

Необходимо е

Основни познания по PHP

Инструкции

Етап 1

Използвайте вградената функция на PHP getenv, за да четете IP адреси от масива от променлива среда на суперглобалната среда. В най-простия случай ще бъде достатъчно да прочетете променливата с име REMOTE_ADDR. Съответната част от PHP кода може да изглежда така: $ userIP = getenv ('REMOTE_ADDR');

Стъпка 2

В допълнение към променливата REMOTE_ADDR, изпратена в заявката, проверете променливите HTTP_VIA и HTTP_X_FORWARDED_FOR. Ако посетителят използва прокси сървър, тогава междинният адрес трябва да бъде записан и в двете променливи - и в двете HTTP_VIA и REMOTE_ADDR. В този случай можете да опитате да разберете истинския IP на посетителя чрез HTTP_X_FORWARDED_FOR - прокси сървърът трябва да постави оригиналния адрес в него. Това обаче не винаги се прави и потребителят има възможност да избере "непрозрачен" прокси сървър, който не предава оригиналния IP на посетителя, изпратил заявката. Във всеки случай трябва да използвате възможно най-много начини да получите оригиналния IP адрес във вашия код, като добавите проверка за променливата

Стъпка 3

Обединете в един ред PHP код последователна проверка на три променливи на средата, която може да съдържа оригиналния IP адрес на посетителя. Това може да се направи например по следния начин: $ userIP = getenv ('HTTP_CLIENT_IP') ИЛИ $ userIP = getenv ('HTTP_X_FORWARDED_FOR') ИЛИ $ userIP = getenv ('REMOTE_ADDR');

Стъпка 4

Премахнете излишните символи и други "боклуци" от получената IP стойност, която може да попадне в променливите на околната среда. Това може да се направи, например, като се използват вградените PHP функции TRIM и preg_replace: $ userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));

Стъпка 5

Комбинирайте целия код в персонализирана функция, така че да можете да се позовавате на него, вместо да повтаряте линиите за проверка и почистване отново и отново в различни части на вашите PHP скриптове. Например, по следния начин: FUNCTION getUserIP () {

$ userIP = getenv ('HTTP_CLIENT_IP') ИЛИ $ userIP = getenv ('HTTP_X_FORWARDED_FOR') ИЛИ $ userIP = getenv ('REMOTE_ADDR');

ВРЪЩАНЕ НА ОТПРАВКА (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));

}

Препоръчано: