Php'de Gerçek IP adresinin tespiti

Php programlama dili kullanarak yazdığınız sitede $_SERVER['REMOTE_ADDR'] verisi ile kullanıcının IP adresini almaya mı çalışıyorsunuz? Bu verinin gerçek Ip adresi getirmeyebileceği birçok durum bulunmaktadır. Eğer kullanıcı proxy server üzerinden internete bağlanıp, websitenizi ziyaret ettiyse muhtemelen $_SERVER['REMOTE_ADDR'] sorgusu sonrası dönen IP adresi kullanıcıya ait değil, proxy makinasına ait olan IP verisini dönecektir. Php programlama dilinde HTTP_CLIENT_IP ve HTTP_X_FORWARDED_FOR verileri kullanarak bu işlemleri gerçekleştirebiliyoruz. Aşağıda bulunan fonksiyon sayesinde proxy server üzerinden bağlanılsa bile kullanıcıya ait IP verisini getirmemize sebep olmaktadır:
  1. <?php
    function gercekIPAdresiniGetir() { 
        if (!empty($_SERVER['HTTP_CLIENT_IP']))
        { 
            $ip=$_SERVER['HTTP_CLIENT_IP']; 
        } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) 
        { 
            $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; 
        } else { 
            $ip=$_SERVER['REMOTE_ADDR']; 
        } 
        
       return $ip; 
    }
    ?>
Yukarıda bulunan kodlama ilk olara makinaya ait gerçek IP verisini çekmeye çalışıyor. Eğer bunu gerçekleştiremezse proxy sunucundan bağlanıldığı düşünülüp makinaya ait veri çekilmeye çalışıyor. Eğer bunda da başarılı olunmazsa direkt gerçek IP adresini çekmemizi sağlamaktadır.
comments powered by Disqus