function some_plugin_name_get_remote_address() {
$remote_addr = getenv('HTTP_CLIENT_IP') ?: (
getenv('HTTP_X_FORWARDED_FOR') ?: (
getenv('HTTP_X_FORWARDED') ?: (
getenv('HTTP_FORWARDED_FOR') ?: (
getenv('HTTP_FORWARDED') ?: getenv('REMOTE_ADDR')
)
)
)
);
$remote_addr = str_replace('for=', '', $remote_addr);
return $remote_addr;
}
function some_plugin_name_get_remote_address() {
$remote_addr = getenv('HTTP_CLIENT_IP')
? getenv('HTTP_CLIENT_IP')
: (
getenv('HTTP_X_FORWARDED_FOR')
? getenv('HTTP_X_FORWARDED_FOR')
: (
getenv('HTTP_X_FORWARDED')
? getenv('HTTP_X_FORWARDED')
: (
getenv('HTTP_FORWARDED_FOR')
? getenv('HTTP_FORWARDED_FOR')
: (
getenv('HTTP_FORWARDED')
? getenv('HTTP_FORWARDED')
: getenv('REMOTE_ADDR')
)
)
)
);
$remote_addr = str_replace('for=', '', $remote_addr);
return $remote_addr;
}
function some_plugin_name_get_remote_address() {
$remote_addr = getenv('HTTP_CLIENT_IP') ? getenv('HTTP_CLIENT_IP') :
(getenv('HTTP_X_FORWARDED_FOR') ? getenv('HTTP_X_FORWARDED_FOR') :
(getenv('HTTP_X_FORWARDED') ? getenv('HTTP_X_FORWARDED') :
(getenv('HTTP_FORWARDED_FOR') ? getenv('HTTP_FORWARDED_FOR') :
(getenv('HTTP_FORWARDED')?getenv('HTTP_FORWARDED'):
getenv('REMOTE_ADDR')
))));
$remote_addr = str_replace('for=', '', $remote_addr);
return $remote_addr;
}
function real_ip(): ?string
{
if (array_key_exists('HTTP_X_REAL_IP', $_SERVER)) {
return $_SERVER['HTTP_X_REAL_IP'];
} else {
return $_SERVER['REMOTE_ADDR'];
}
}
мне получается надо ща мдн спарсить на все возможные свойства, и посмотреть их возможные значения, чтобы избежать таких казисов?
а что пока только ждёт за углом - то неведомо.:)
$remote_addr = match(true) {
getenv('HTTP_CLIENT_IP') => getenv('HTTP_CLIENT_IP'),
getenv('HTTP_X_FORWARDED_FOR') => getenv('HTTP_X_FORWARDED_FOR'),
getenv('HTTP_X_FORWARDED') => getenv('HTTP_X_FORWARDED')
getenv('HTTP_FORWARDED_FOR') => getenv('HTTP_FORWARDED_FOR')
getenv('HTTP_FORWARDED') => getenv('HTTP_FORWARDED')
default => getenv('REMOTE_ADDR')
};
пройти циклом по всем символам строки и убрать каждый третий.
каждый третий - это тот, чей индекс делится на 3 без остатка, с учетом того что индексы начинаются с нуля, следует прибавить единицу.
то есть
не понятно, зачем задавать столь примитивные вопросы... основам алгоритмов еще в школе учат.