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
. Пруфлинк
ВКонтакте
Twitter
Facebook
Одноклассники
Linkedin
Telegram
WhatsApp