Получаем IP-адрес пользователя

Скопировано
$ip = get_ip_address();
function get_ip_address() {
	foreach( array( 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR' ) as $key ) {
		if( array_key_exists( $key, $_SERVER ) === true ) {
			foreach( explode( ',', $_SERVER[$key] ) as $ip ) {
				$ip = trim( $ip );
				if( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE ) !== false ) {
					return $ip;
				}
			}
		}
	}
}
Показать код

Или вариант попроще:

Скопировано
$IP = $_SERVER['REMOTE_ADDR'];	// IP пользователя
if( array_key_exists( 'HTTP_X_FORWARDED_FOR', $_SERVER ) ) {
	$arr = explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] );
	if( is_array( $arr ) )  $IP = array_pop( $arr );
}
Показать код