• 10-11-2024, 18:47:03
    #1
    İnternetten böyle bir kod buldum çalışıyor, siteye girişte ancak sadece tr izin veriyor ben bir kaç ülke daha ekleyeceğim hata alıyorum
    if ($data['countryCode'] == "TR"){
    // countryCode TR engelleme yok.
    bu satırda ülkeleri nasıl çoğaltabilirim.


    $kaynak = file_get_contents("http://ip-api.com/json/".$_SERVER['REMOTE_ADDR']."?lang=en");
    $data = json_decode($kaynak,true);
    
    //echo $data['countryCode'];
    
    if ($data['countryCode'] == "TR"){
        // countryCode TR engelleme yok.
    }else{
      header('HTTP/1.1 403 Forbidden');
      echo "Forbidden IP! / Yasaklı IP";
      die();
    }
  • 10-11-2024, 18:48:18
    #2
    Üyeliği durduruldu
    TR,DE,NL. devam et..
  • 10-11-2024, 18:49:10
    #3
    $kaynak = file_get_contents("http://ip-api.com/json/".$_SERVER['REMOTE_ADDR']."?lang=en");
    $data = json_decode($kaynak,true);
    
    $allowedCountries = ["TR", "US", "DE", "GB"];  // Buraya istediğiniz ülke kodlarını ekleyebilirsiniz
    
    if (in_array($data['countryCode'], $allowedCountries)) {
        // Eğer ülke kodu izin verilen ülkeler arasında ise
        // herhangi bir işlem yapmayabilirsiniz veya izin verilen ülkeler için başka işlemler yapabilirsiniz.
    } else {
        header('HTTP/1.1 403 Forbidden');
        echo "Forbidden IP! / Yasaklı IP";
        die();
    }
    Bu işi php den değil de cloudflare'dan halletmeni tavsiye ederim. Network policy araştırabilirsin.
  • 10-11-2024, 18:49:55
    #4
    else if?

    if ($data['countryCode'] == "TR"){
    // countryCode TR engelleme yok.
    }else if($data['countryCode'] == "EN" ){
    // countryCode ENengelleme yok.
    }
    else{
    header('HTTP/1.1 403 Forbidden');
    echo "Forbidden IP! / Yasaklı IP";
    die();
    }
  • 10-11-2024, 18:56:27
    #5
    bunun yerine cloudflare kullanmanı öneririm. hem boşuna trafik yapmamış olur her ziyarette.
  • 10-11-2024, 18:59:17
    #6
    Cloudflare kullanıyorsanız IP Geolocation etkinleştirirseniz api isteği kaynaklı yavaşlama minimuma iner. CF-IPCountry header'ı ile alabilirsiniz.
    <?php
    
    $allowedCountries = ['TR', 'US', 'DE'];
    $countryCode = $_SERVER['HTTP_CF_IPCOUNTRY'] ?? '';
    if (!in_array($countryCode, $allowedCountries)) {
    header('HTTP/1.1 403 Forbidden');
      die("Forbidden IP! / Yasaklı IP" );
    } 
    ?>
  • 10-11-2024, 18:59:40
    #7
    Sorunu çözdüm hepinize teşekkür ederim.