v2.5.2
Giriş yap

PHP veya Java ile bazı ülke girişlerini engelleme

erdal42
255 defa görüntülendi ve 1 kişi tarafından değerlendirildi

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 ?

Cevap yaz
Cevaplar (2)
kitfox
371 gün önce

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.

holdfast
372 gün önce

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.