Верх страницы
Обложка к записи PHP: определение IP адреса пользователя
Время для прочтения: 0 мин. 28 сек.

PHP: определение IP адреса пользователя

Задача определения IP адреса пользователя достаточно часто встречается (например, для создания записи в логе), поэтому привожу в упрощенном виде свой метод.

/**
 * Получить данные из массива SERVER
 * @param null $key
 * @param null $default
 * @return null
 */
function get_server( $key = null, $default = null ) {
  if ( null === $key ) {
    return $_SERVER;
  }
  return ( isset( $_SERVER[ $key ] ) )
    ? $_SERVER[ $key ]
    : $default;
}
 
/**
 * Получить IP адрес клиента
 * @param boolean $proxy
 * @return string
 */
function getClientIp( $proxy = true ) {
  // Cloudflare.
  if ( $proxy && get_server( 'HTTP_CF_CONNECTING_IP' ) != null ) {
    $ip = get_server( 'HTTP_CF_CONNECTING_IP' );
  } elseif ( $proxy && get_server('HTTP_CLIENT_IP' ) != null ) {
    $ip = get_server( 'HTTP_CLIENT_IP' );
  } elseif ( $proxy && get_server( 'HTTP_X_FORWARDED_FOR' ) != null ) {
    $ip = get_server( 'HTTP_X_FORWARDED_FOR' );
  } else {
    $ip = get_server( 'REMOTE_ADDR' );
  }
  return $ip;
}

Не делайте так! Доверяйте лишь заголовку REMOTE_ADDR. Пруфлинк

Автор: Кобзарёв Михаил

Русский разработчик с 20-ти летним стажем. Работаю с PHP, ООП, JavaScript, Git, WordPress, Битрикс, Joomla, Drupal, Opencart, DLE, Laravel, Moonshine, SuiteCRM.

Оптимизирую сайты под Google Page Speed, настраиваю импорты для больших магазинов на WooCommerce + WP All Import. Пишу плагины на заказ. Все мои услуги.

Веду блог о разработке, дайджест в телеграмме и в ВК.

Вы всегда можете нанять меня.

Комментарии
Подписаться
Уведомить о
guest

4 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Алексадр Макаров
11 лет назад

Очень нехороший способ. См. http://habrahabr.ru/post/158417/.

Алексадр Макаров
11 лет назад
Ответить на  Кобзарёв Михаил

Ну а в нём, как раз, очень небезопасный метод.

Предыдущая запись
Следующая запись

Давайте дружить
в Телеграме

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, Joomla, Opencart, Laravel, Moonshine, фильмы и сериалы