lostyazilim
tr.link

siteye ülke kısıtlaması ekleme

2 Mesajlar 470 Okunma
lstbozum
tr.link

j700 j700 WM Aracı Kullanıcı
  • Üyelik 12.01.2016
  • Yaş/Cinsiyet 30 / E
  • Meslek Otel
  • Konum Antalya
  • Ad Soyad R** A**
  • Mesajlar 1263
  • Beğeniler 214 / 215
  • Ticaret 1, (%100)
siteme bazı ülkelerden girişleri kapatmak istiyorum nasıl yapabilirim mesela amerikadan siteme girmek isteyen birisini bir sayfaya yönlendirsin ülkenizde bu site kapalı yazsın

nasıl yapabilirim
 

 

wmaraci
reklam

Decimas Decimas WM Aracı Kullanıcı
  • Üyelik 19.04.2015
  • Yaş/Cinsiyet 26 / E
  • Meslek Developer
  • Konum İstanbul Avrupa
  • Ad Soyad E** E**
  • Mesajlar 820
  • Beğeniler 1 / 302
  • Ticaret 1, (%100)
Yetersiz bilgi verdiğin için ben varsayılan olarak php üzerinden örnek vereceğim, artık başka dil vs kullanıyorsan uyarlarsın.

Bir ara lazım olunca böyle çok basit ama oldukça kullanışlı bir şey yazmıştım, lazım oldukça değiştirip değiştirip kullanabilirsin.


ob_start();
function IP_İstemci_Bilgisi($IP = NULL, $temiz_metin = "location", $derinlemesine_tarama = TRUE)
{
$çıktı = NULL;
if (filter_var($IP, FILTER_VALIDATE_IP) === FALSE)
{
$IP = $_SERVER["REMOTE_ADDR"];
if ($derinlemesine_tarama)
{
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'];
}
}
$temiz_metin = str_replace(array("name", "\n", "\t", " ", "-", "_"), NULL, strtolower(trim($temiz_metin)));
$veri_dizisi = array(
"ülke",
"ülkekodu",
"erişimdurumu",
"region",
"enlem",
"boylam",
"kıtakodu",
"kordinatadresi",
"burasıgerçektentürkiyemi",
"ipadresi"
);

$kıtasalbölgeler = array(
"AF" => "Africa",
"AN" => "Antartika",
"AS" => "Asya",
"EU" => "Avrupa",
"OC" => "Avustralya",
"NA" => "Kuzey Amerika",
"SA" => "Güney Amerika"
);
if (filter_var($IP, FILTER_VALIDATE_IP) && in_array($temiz_metin, $veri_dizisi))
{
$JSONes = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=" . $IP));
if (@strlen(trim($JSONes->geoplugin_countryCode)) == 2)
{
switch ($temiz_metin)
{
case "ipadresi":
$çıktı = $IP;
break;
case "erişimdurumu":
$çıktı = @$JSONes->geoplugin_status;
break;
case "enlem":
$çıktı = @$JSONes->geoplugin_latitude;
break;
case "boylam":
$çıktı = @$JSONes->geoplugin_longitude;
break;
case "erişimdurumu":
$çıktı = @$JSONes->geoplugin_status;
break;
case "ülkekodu":
$çıktı = @$JSONes->geoplugin_countryCode;
break;
case "ülke":
$çıktı = @$JSONes->geoplugin_countryName;
break;
case "kıtakodu":
$çıktı = @$JSONes->geoplugin_continentCode;
break;
case "kıta":
$çıktı = @$kıtasalbölgeler[strtoupper($JSONes->geoplugin_continentCode)];
break;
case "kordinatadresi":
if(json_decode(@file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?latlng='.@$JSONes->geoplugin_latitude.','.@$JSONes->geoplugin_longitude.'&sensor=false'))->status == "OK")
{
$çıktı = json_decode(@file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?latlng='.@$JSONes->geoplugin_latitude.','.@$JSONes->geoplugin_longitude.'&sensor=false'))->results[0]->formatted_address;
}
else
{
$çıktı = "Adres Bilgisi Bulunamadı.";
}
break;
case "burasıgerçektentürkiyemi":
if ((@$JSONes->geoplugin_latitude >= 36) && (@$JSONes->geoplugin_latitude <= 42) && (@$JSONes->geoplugin_longitude >= 26) && (@$JSONes->geoplugin_longitude <= 45))
{
$çıktı = "Evet";
}
else
{
$çıktı = "Hayır";
}
break;
}
}
}
return $çıktı;
}


/*
echo "{";
echo ' "IP_Adresi" : "'.IP_İstemci_Bilgisi("istemci", "ipadresi").'",';
echo ' "Erişim_Durumu" : "'.IP_İstemci_Bilgisi("istemci", "erişimdurumu").'",';
echo ' "Ülke_Kodu" : "'.IP_İstemci_Bilgisi("istemci", "ülkekodu").'",';
echo ' "Kıta_Kodu" : "'.IP_İstemci_Bilgisi("istemci", "kıtakodu").'",';
echo ' "Enlem" : "'.IP_İstemci_Bilgisi("istemci", "enlem").'",';
echo ' "Boylam" : "'.IP_İstemci_Bilgisi("istemci", "boylam").'",';
echo ' "Kordinat_Adresi" : "'.IP_İstemci_Bilgisi("istemci", "kordinatadresi").'",';
echo ' "Kordinatlar_Türkiyeye_Mi_Ait" : "'.IP_İstemci_Bilgisi("istemci", "burasıgerçektentürkiyemi").'"';
echo "}";
*/


if (IP_İstemci_Bilgisi("istemci", "ülkekodu") == "US")
{
/*çıktı*/
echo IP_İstemci_Bilgisi("istemci", "ülkekodu");

/*php ile yönlendirme*/
header("Location: http://www.bing.com/ ");
exit;

/*js ile yönlendirme*/
/*echo "<script>window.top.location='http://www.bing.com/';</script>";
exit;*/
}



Birden fazla ülke için de aynı şeyi düşünüyorsan bir diziye atıp yine if kısmını bir for foreach içinde kullanabilirsin.

Ek olarak: Ben siteye ülkemden ulaşamayınca opera tek tıkla vpn açıp hemen başka bir yerden bağlanabiliyorum, bu durumu aşman için de tarayıcıya bir çerez atarak sonraki denemelerde veya ip değişikliğinde yine otomatik olarak yönlendirebilirsin.

Ayrıca başka tarayıcıdan deneme ihtimaline karşı cihaz bilgilerini alıp belirli bir süre veri tabanında tutarsın (veya session da olabilir), sunucuya erişimlerde bu bilgileri kıyaslarsın eğer şüpheli bir durum varsa yönlendirirsin.
 

 

no time for caution
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al