To show real ip behind a proxy, your server/vps must run to apache (no litespeed) and have HTTP_X_REAL_IP si HTTP_X_FORWARDED_FOR. Check with phpinfo()
PHP Code:
function ip() {
if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) && filter_var( $_SERVER['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP,
FILTER_FLAG_NO_PRIV_RANGE ) ) {
$_SERVER['REMOTE_ADDR'] = filter_var( $_SERVER['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE ) ;
} else
if ( isset( $_SERVER['HTTP_X_REAL_IP'] ) && filter_var( $_SERVER['HTTP_X_REAL_IP'], FILTER_VALIDATE_IP,
FILTER_FLAG_NO_PRIV_RANGE ) ) {
$_SERVER['REMOTE_ADDR'] = filter_var( $_SERVER['HTTP_X_REAL_IP'], FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE ) ;
} else {
if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'] ;
}
if ( isset( $_SERVER['HTTP_X_REAL_IP'] ) ) {
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP'] ;
}
}
return $_SERVER['REMOTE_ADDR'] ;
}
echo ip();
Comment