• 13-03-2021, 15:00:41
    #1
    if (getenv('HTTP_CLIENT_IP')) {
                    $publicip = getenv('HTTP_CLIENT_IP');
                } else if(getenv('HTTP_X_FORWARDED_FOR')) {
                    $publicip = getenv('HTTP_X_FORWARDED_FOR');
                } else if(getenv('HTTP_X_FORWARDED')) {
                    $publicip = getenv('HTTP_X_FORWARDED');
                } else if(getenv('HTTP_FORWARDED_FOR')) {
                    $publicip = getenv('HTTP_FORWARDED_FOR');
                } else if(getenv('HTTP_FORWARDED')) {
                    $publicip = getenv('HTTP_FORWARDED');
                } else {
                    $localip = getenv('REMOTE_ADDR');
                }
    yukarıdaki kod $publicip yi null döndürüyor hata nerede tşk.
  • 13-03-2021, 15:03:40
    #2
    eşleşen veri olmadığı için else içerisinde geliyor ancak burada veriyi localip içerisine atıyorsunuz muhtemelen ondan dolayı hata alıyorsunuz. Benim kod betiğim ektedir.

    function GetIP(){
        if(getenv("HTTP_CLIENT_IP")) {
            $ip = getenv("HTTP_CLIENT_IP");
        } elseif(getenv("HTTP_X_FORWARDED_FOR")) {
            $ip = getenv("HTTP_X_FORWARDED_FOR");
            if (strstr($ip, ',')) {
                $tmp = explode (',', $ip);
                $ip = trim($tmp[0]);
            }
        } else {
            $ip = getenv("REMOTE_ADDR");
        }
        return $ip;
    }
  • 13-03-2021, 15:03:48
    #3
    Ben aşağıdaki kodu kullanıyorum. Her zaman doğru ip adresini veriyor.

    function GetIP(){  
        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;  
    }
  • 13-03-2021, 15:04:18
    #4
    gurdeniz adlı üyeden alıntı: mesajı görüntüle
    if (getenv('HTTP_CLIENT_IP')) {
                    $publicip = getenv('HTTP_CLIENT_IP');
                } else if(getenv('HTTP_X_FORWARDED_FOR')) {
                    $publicip = getenv('HTTP_X_FORWARDED_FOR');
                } else if(getenv('HTTP_X_FORWARDED')) {
                    $publicip = getenv('HTTP_X_FORWARDED');
                } else if(getenv('HTTP_FORWARDED_FOR')) {
                    $publicip = getenv('HTTP_FORWARDED_FOR');
                } else if(getenv('HTTP_FORWARDED')) {
                    $publicip = getenv('HTTP_FORWARDED');
                } else {
                    $localip = getenv('REMOTE_ADDR');
                }
    yukarıdaki kod $publicip yi null döndürüyor hata nerede tşk.

    birde bunu dene istersen.

    https://stackoverflow.com/questions/13646690/how-to-get-real-ip-from-visitor/13646848