• 02-01-2018, 04:43:24
    #1
    Üyeliği durduruldu
    Merhaba arkadaşlar,
    Saatlerdir yaptığım araştırmalar sonucu malesef aradığım kodu bulamadım.
    Aşağıdaki kod ile denediğimde "bilinmeyen ulke" olarak cıkış alıyorum.
    Bu konu hakkında bilgisi olan arkadaşlar yardımcı olurlarsa sevinirim.
    <?php
    function ulke($ip) {
    $ulke = file_get_contents("http://ipinfo.io/".$ip."/country");
    return $ulke;
    }
    $ip = $_SERVER['REMOTE_ADDR'];
    $ulke = ulke($ip);
    if(eregi ("TR", $ulke)){
    echo "turkiye girisi";
    echo $ulke;
    } elseif(eregi ("FR", $ulke)){
    echo "fransa girisi";
    echo $ulke;
    }
    else {
    echo "bilinmeyen ulke";
    }
    ?>
  • 02-01-2018, 04:48:39
    #2
    Üyeliği durduruldu
    tam olarak ne istiyorsun cloaker gibi birşey mi yapmak
  • 02-01-2018, 04:57:03
    #4
    Üyeliği durduruldu
    Evet Lordbey türkiye girişi haricinde site açılmasın istiyorum
  • 03-01-2018, 14:45:09
    #5
    Merhaba,
    İnternette böyle bir şey buldum, tüm betiği incelemedim ama istediğine uygun olacak gibi, umarım işine yarar.
    https://stackoverflow.com/questions/...-from-their-ip
    Bu adresteki cevap ülkeyi bulmanı sağlayacak, ondan sonrası için ufak bir kodla sorunu çözersin diye düşünüyorum.
    $GelenZiyaretcininUlkesi = ip_info("Visitor", "Country"); // Burada gelen ziyaretçinin ülkesini öğrenelim. 
    if ( (isset($GelenZiyaretcininUlkesi) && ($GelenZiyaretcininUlkesi=="Turkey") ) { // Gelen ülke değeri var mı ve Türkiye mi diye bakalım
        header('Location: index.php'); // IP ye göre giriş Türkiye dense anasayfamıza yönlendirelim
    } else { // Eğer gelen değer yoksa veya Türkiye değilse uyarı yazdıralım
        echo "Bu internet sitesine sadece Türkiye'den girilebilir.";
    }
  • 03-01-2018, 17:58:48
    #6
    Üyeliği durduruldu
    ozraksy adlı üyeden alıntı: mesajı görüntüle
    Merhaba,
    İnternette böyle bir şey buldum, tüm betiği incelemedim ama istediğine uygun olacak gibi, umarım işine yarar.
    https://stackoverflow.com/questions/...-from-their-ip
    Bu adresteki cevap ülkeyi bulmanı sağlayacak, ondan sonrası için ufak bir kodla sorunu çözersin diye düşünüyorum.
    $GelenZiyaretcininUlkesi = ip_info("Visitor", "Country"); // Burada gelen ziyaretçinin ülkesini öğrenelim. 
    if ( (isset($GelenZiyaretcininUlkesi) && ($GelenZiyaretcininUlkesi=="Turkey") ) { // Gelen ülke değeri var mı ve Türkiye mi diye bakalım
        header('Location: index.php'); // IP ye göre giriş Türkiye dense anasayfamıza yönlendirelim
    } else { // Eğer gelen değer yoksa veya Türkiye değilse uyarı yazdıralım
        echo "Bu internet sitesine sadece Türkiye'den girilebilir.";
    }
    ozraksy Kod için teşekkürler fakat aşağıdaki gibi bir hata alıyorum kodu çalıştıramadım.
     PHP Parse error:  syntax error, unexpected ';' in /home/xxxxxx/public_html/ip.php on line 4
  • 04-01-2018, 02:34:19
    #7
    PikseL34 adlı üyeden alıntı: mesajı görüntüle
    ozraksy Kod için teşekkürler fakat aşağıdaki gibi bir hata alıyorum kodu çalıştıramadım.
     PHP Parse error:  syntax error, unexpected ';' in /home/xxxxxx/public_html/ip.php on line 4

    $GelenZiyaretcininUlkesi = ip_info("Visitor", "Country"); // Burada gelen ziyaretçinin ülkesini öğrenelim. 
    if ((isset($GelenZiyaretcininUlkesi) && ($GelenZiyaretcininUlkesi=="Turkey"))) { // Gelen ülke değeri var mı ve Türkiye mi diye bakalım
        header('Location: index.php'); // IP ye göre giriş Türkiye dense anasayfamıza yönlendirelim
    } else { // Eğer gelen değer yoksa veya Türkiye değilse uyarı yazdıralım
        echo "Bu internet sitesine sadece Türkiye'den girilebilir.";
    }
    Bu şekilde çalışacaktır kod.
    isset kısmında ) < şu işaret eksik kalmış ondan hata veriyordu.

    buda benim derlediğim kod

    function ip_info($ip = NULL, $purpose = "location", $deep_detect = TRUE) {
        $output = NULL;
        if (filter_var($ip, FILTER_VALIDATE_IP) === FALSE) {
            $ip = $_SERVER["REMOTE_ADDR"];
            if ($deep_detect) {
                if (filter_var(@$_SERVER['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP))
                    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
                if (filter_var(@$_SERVER['HTTP_CLIENT_IP'], FILTER_VALIDATE_IP))
                    $ip = $_SERVER['HTTP_CLIENT_IP'];
            }
        }
        $purpose    = str_replace(array("name", "\n", "\t", " ", "-", "_"), NULL, strtolower(trim($purpose)));
        $support    = array("country", "countrycode", "state", "region", "city", "location", "address");
        $continents = array(
            "AF" => "Africa",
            "AN" => "Antarctica",
            "AS" => "Asia",
            "EU" => "Europe",
            "OC" => "Australia (Oceania)",
            "NA" => "North America",
            "SA" => "South America"
        );
        $ip = "185.182.81.53"; // UYARI !!!!!!! ip degiskenini test yaptiktan sonra siliniz.
    
        if (filter_var($ip, FILTER_VALIDATE_IP) && in_array($purpose, $support)) {
            $ipdat = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=" . $ip));
            if (@strlen(trim($ipdat->geoplugin_countryCode)) == 2) {
                switch ($purpose) {
                    case "location":
                        $output = array(
                            "city"           => @$ipdat->geoplugin_city,
                            "state"          => @$ipdat->geoplugin_regionName,
                            "country"        => @$ipdat->geoplugin_countryName,
                            "country_code"   => @$ipdat->geoplugin_countryCode,
                            "continent"      => @$continents[strtoupper($ipdat->geoplugin_continentCode)],
                            "continent_code" => @$ipdat->geoplugin_continentCode
                        );
                        break;
                    case "address":
                        $address = array($ipdat->geoplugin_countryName);
                        if (@strlen($ipdat->geoplugin_regionName) >= 1)
                            $address[] = $ipdat->geoplugin_regionName;
                        if (@strlen($ipdat->geoplugin_city) >= 1)
                            $address[] = $ipdat->geoplugin_city;
                        $output = implode(", ", array_reverse($address));
                        break;
                    case "city":
                        $output = @$ipdat->geoplugin_city;
                        break;
                    case "state":
                        $output = @$ipdat->geoplugin_regionName;
                        break;
                    case "region":
                        $output = @$ipdat->geoplugin_regionName;
                        break;
                    case "country":
                        $output = @$ipdat->geoplugin_countryName;
                        break;
                    case "countrycode":
                        $output = @$ipdat->geoplugin_countryCode;
                        break;
                }
            }
        }
        return $output;
    }
    $IpControl = ip_info("Visitor","Country");
    if ($IpControl == "Turkey"){
        echo "Giriş Serbest ";
    } else{
    echo "TR Giriş olmayan ülkeye yasak";
    }
    fonksiyon içerisine $ip degiskeni ekledim test amacli kullandiktan sonra silersiniz.
  • 04-01-2018, 10:09:32
    #8
    PikseL34 adlı üyeden alıntı: mesajı görüntüle
    ozraksy Kod için teşekkürler fakat aşağıdaki gibi bir hata alıyorum kodu çalıştıramadım.
     PHP Parse error:  syntax error, unexpected ';' in /home/xxxxxx/public_html/ip.php on line 4
    Evet ufak bir hata yapmışım, ama sağolsun D62 halletmiş Umarım işinizi kolaylaştırır, ayrıca teşekkürler D62