PHP поставляется с очень простой глобальной переменной для получения IP-адреса. Многие новички используют его для получения IP-адреса. Тем не менее, мы можем соответствовать общему использованию этих функций, но мы не можем сделать это для функции, требующей высокой точности.
Это самый простой метод. Нет никакого способа открыть прозрачный прокси-сервер. Если вы выходите в Интернет, вы не можете прочитать правильный IP-адрес в Интернете, но это очень экономит трудозатраты
$ ip = $_SERVER[“REMOTE_ADDR”];
Все сделано~
Вышеуказанный метод используется для получения IP-адреса клиента. Однако, если клиент использует прокси-сервер для доступа, он получит IP-адрес прокси-сервера вместо реального IP-адреса клиента
Чтобы получить реальный IP-адрес клиента через прокси-сервер, вам необходимо использовать getenv (“http_ X_ ПЕРЕНАПРАВЛЕН_ Для “). Но если клиент не получает доступ через прокси-сервер, используйте getenv (“http_ X_ FORWARDED_ Для “) будет пустым.
иначе, если(getenv(“HTTP_X_FORWARDED_FOR”)) (“HTTP_X_FORWARDED_FOR”);
Если getenv (“http_ X_ ПЕРЕСЫЛАЕТСЯ”, Если значение, полученное” для”) не пустое (то есть, когда клиент использует прокси-сервер), переменная $IP равна getenv (“HTTP”)_ X_ ПЕРЕСЫЛАЕТСЯ “Для”), чтобы получить реальное значение IP.
Если еще, если (getenv (“http_ X_ ПЕРЕАДРЕСОВАНО_, Если полученное значение равно нулю (то есть прокси-сервер не используется), следующее (“HTTP”) не будет выполнено_ X_ ПЕРЕАДРЕСОВАНО_ Для “); эта инструкция строки.
В этом случае было подтверждено, что клиент не использует прокси-сервер, так что
иначе, если(getenv(“REMOTE_ADDR”)) (“REMOTE_ADDR”);
Эти две строки инструкций получают IP-адрес клиента, который также является реальным IP-адресом, полученным из опыта
function getIP()
{
static $realip;
if (isset($_SERVER)){
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
$realip = $_SERVER["HTTP_CLIENT_IP"];
} else {
$realip = $_SERVER["REMOTE_ADDR"];
}
} else {
if (getenv("HTTP_X_FORWARDED_FOR")){
$realip = getenv("HTTP_X_FORWARDED_FOR");
} else if (getenv("HTTP_CLIENT_IP")) {
$realip = getenv("HTTP_CLIENT_IP");
} else {
$realip = getenv("REMOTE_ADDR");
}
}
return $realip;
}Кроме того, если мы хотим получить более точное использование третьей стороны, это хороший способ
function get_onlineip() {
$ch = curl_init('http://www.ip138.com/ip2city.asp');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$a = curl_exec($ch);
preg_match('/[(.*)]/', $a, $ip);
return $ip[1];
}Это не управляет агентом или что-либо может определить IP-адрес.
Выше приведено все содержание этой статьи, я надеюсь помочь вам в вашем исследовании, и я надеюсь, что вы сможете больше поддерживать developeppaer.