ip_address
includes/bootstrap.inc, строка 1182
- Версии
- 6
ip_address()
Если друпал расположен за инвертированным прокси-сервером, мы используем заголовок X-Forwarded-For вместо $_SERVER['REMOTE_ADDR']
, который может быть адресом прокси-сервера, а не клиента.
Возвращаемое значение
IP адрес клиентской машины, скоррекцией на прокси-сервер.
Код
<?php
function ip_address() {
static $ip_address = NULL;
if (!isset($ip_address)) {
$ip_address = $_SERVER['REMOTE_ADDR'];
if (variable_get('reverse_proxy', 0) && array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER)) {
// If an array of known reverse proxy IPs is provided, then trust
// the XFF header if request really comes from one of them.
$reverse_proxy_addresses = variable_get('reverse_proxy_addresses', array());
if (!empty($reverse_proxy_addresses) && in_array($ip_address, $reverse_proxy_addresses, TRUE)) {
// If there are several arguments, we need to check the most
// recently added one, i.e. the last one.
$ip_address = array_pop(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']));
}
}
}
return $ip_address;
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии