PHP – Mengetahui REAL IP Visitor dengan PHP



Cara mengetahui ip public kita dengan PHP , Bahas sedikit tentang masalah programming, kali ini belajar dengan PHP , mungkin anda yang sekarang sedang belajar Bahasa Pemrograman Web Menggunakan php , pasti mengenal apa itu IP, dan saya tidak akan mengenalkan tentang IP ( Internet Protocol ) di artikel / di sesi ini.

Anda yang sedang belajar atau mungkin sedang membuat Web App. berbasiskan PHP sebagai bahasanya , mungkin fungsi ini akan membantu anda dalam hal mendapatkan IP yang sebenarnya dari Visitor, dimana banyak visitor web yang menggunakan proxy  atau berlindung dibalik Firewall kemungkinan besar akan dapat diperoleh dengan script Sederhana yang telah saya buat juga untuk project saya 😀

 

 /**
 * Get real IP that maybe user / visitor uses Proxy or behind the network protection
 * @return string real IP 
 */
function get_real_ip() {
    $clientip      = isset( $_SERVER['HTTP_CLIENT_IP'] )       && $_SERVER['HTTP_CLIENT_IP']       ?
                     $_SERVER['HTTP_CLIENT_IP']         : false;
    $xforwarderfor = isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) && $_SERVER['HTTP_X_FORWARDED_FOR'] ?
                     $_SERVER['HTTP_X_FORWARDED_FOR']   : false;
    $xforwarded    = isset( $_SERVER['HTTP_X_FORWARDED'] )     && $_SERVER['HTTP_X_FORWARDED']     ?
                     $_SERVER['HTTP_X_FORWARDED']       : false;
    $forwardedfor  = isset( $_SERVER['HTTP_FORWARDED_FOR'] )   && $_SERVER['HTTP_FORWARDED_FOR']   ?
                     $_SERVER['HTTP_FORWARDED_FOR']     : false;
    $forwarded     = isset( $_SERVER['HTTP_FORWARDED'] )       && $_SERVER['HTTP_FORWARDED']       ?
                     $_SERVER['HTTP_FORWARDED']         : false;
    $remoteadd     = isset( $_SERVER['REMOTE_ADDR'] )          && $_SERVER['REMOTE_ADDR']          ?
                     $_SERVER['REMOTE_ADDR']            : false;
    
    // Function to get the client ip address
    if ( $clientip          !== false ) {
        $ipaddress = $clientip;
    }
    elseif( $xforwarderfor  !== false ) {
        $ipaddress = $xforwarderfor;
    }
    elseif( $xforwarded     !== false ) {
        $ipaddress = $xforwarded;
    }
    elseif( $forwardedfor   !== false ) {
        $ipaddress = $forwardedfor;
    }
    elseif( $forwarded      !== false ) {
        $ipaddress = $forwarded;
    }
    elseif( $remoteadd      !== false ) {
        $ipaddress = $remoteadd;
    }
    else{
        $ipaddress = false; # unknown
    }
    return $ipaddress;
}

Untuk pemanggilannya hanya menggunakan :
get_real_ip() 

apabila memang saat dipanggil tidak mendapatkan hasil / false, maka IP pengunsjung benar – benar disembunyikan 🙂