Php src get remote addr

Aus My Wiki
Version vom 1. Januar 1970, 00:33 Uhr von 212.101.202.110 (Diskussion)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

function get_remote_addr() { global $HTTP_SERVER_VARS; $GLOBAL = ( isset($HTTP_SERVER_VARS) ? $HTTP_SERVER_VARS : ( isset($_SERVER) ? $_SERVER : '' ) ); $http_x_forwarded_for = ( isset($GLOBAL["HTTP_X_FORWARDED_FOR"]) ? $GLOBAL["HTTP_X_FORWARDED_FOR"] : '' ); $remote_addr = ( isset($GLOBAL["REMOTE_ADDR"]) ? $GLOBAL["REMOTE_ADDR"] : '' ); if ( ! empty($http_x_forwarded_for) ) { foreach ( explode( ',', $http_x_forwarded_for ) as $forward ) { // test if $forward is an IP-address if ( preg_match_all( "/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/", $forward, $IP ) ) { // continue if $IP is a private IP-address if ( ( $IP[1][0]==10 ) || ( $IP[1][0]==192 && $IP[2][0]==168 ) || ( $IP[1][0]==172 && $IP[2][0]>=16 && $IP[2][0]<=31 ) ) { continue; } // return if $IP is a public IP-address return $forward; } } } return $remote_addr; }