PHP veya Java ile bazı ülke girişlerini engelleme
Yukarda örnek olarak göstermek istediğim qwant arama motoru var.
Türkiye'de 2 sene önce hizmet vermeyi bıraktılar. Acaba bu gibi tarzda istediğimiz ülkeyi bu şekilde nasıl engelleyebiliriz. Hizmet verilmeyen ülkelerde bu gibi sayfa yapılabilir mi ?
Sanırım ip ile yapılıyor ama, örnek kodlama sistemi biliyor musunuz ?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
GeoLite2-Country veritabanını kullan burdan sitesinden ücretsiz kayıt ol indir.
<?php
// Kullanıcı IP adresi belirliyoruz
$ip_address = $_SERVER['REMOTE_ADDR'];
// GeoLite2 veritabanı dosyası entegre ediyoruz.
$database = __DIR__.'/GeoLite2-Country.mmdb';
// Framework vs ekleme yoksa bu satırı sile bilirsin
require_once __DIR__.'/vendor/autoload.php';
use GeoIp2\Database\Reader;
$reader = new Reader($database);
// IP adresinden ülke kodunu al
$record = $reader->country($ip_address);
$country_code = strtolower($record->country->isoCode);
// Yerel dil bilgisi
switch ($country_code) {
case 'tr':
$local_language = 'tr';
break;
case 'de':
$local_language = 'de';
break;
case 'fr':
$local_language = 'fr';
break;
default:
$local_language = 'en';
}
// Belirli bir ülkeden gelen kullanıcıyı başka bir sayfaya yönlendir örnek sana hizmet vermiyok dersin :D
if ($country_code == 'de') {
header('Location: http://example.com/deutsch');
exit;
}
?>
artık kodu geliştirmek isteklerine göre sana kalmış. Not: kodu denemedim.
Cloudflare ile bu işlemi yapabilirsin. Bunun dışında kullanıcının IP adresini 3. parti yazılımlarla taratabilirsin ya da kullanıcının tarayıcı dilini baz alarak bu işlemi yapabilirsin. En iyi Cloudflare kullanmak. Çünkü diğer iki yöntemde kullanıcı seni çeşitli yollarla kandırabilir.