-->

Sorularınız mı var?

Size Uygun Hizmeti Beraber Seçelim.

iletişim
PHP ile Ülke Koduna Göre Ziyaretçi IP Adresi Engelleme Nasıl Yapılır? - Vipservis Blog
Vipservis.com: Türkiye'nin En Hızlı, Güvenilir ve Köklü Hosting Sağlayıcısı | Vipservis Web Hosting





PHP ile Ülke Koduna Göre Ziyaretçi IP Adresi Engelleme Nasıl Yapılır?

PHP ile Ülke Koduna Göre Ziyaretçi IP Adresi Engelleme Nasıl Yapılır? Ülke kodlarına göre IP adreslerini engellemek, genellikle...

PHP ile Ülke Koduna Göre Ziyaretçi IP Adresi Engelleme Nasıl Yapılır?

Ülke kodlarına göre IP adreslerini engellemek, genellikle belirli coğrafi bölgelerden gelen trafiği yönetmek veya kısıtlamak amacıyla kullanılır. PHP ile bu işlemi gerçekleştirmek için IP adreslerini ülke kodlarına dönüştürmek ve ardından bu ülkelere göre erişimi kısıtlamak mümkündür. İşte bu işlemi nasıl yapabileceğinizi adım adım açıklayan bir rehber:

Gerekenler

  1. Ülke Kodları ve IP Adresleri Veritabanı: IP adreslerini ülke kodlarına dönüştürmek için bir veritabanına ihtiyacınız olacak. Genellikle GeoIP veritabanları bu amaçla kullanılır.
  2. PHP Uygulaması: IP adreslerini kontrol etmek ve engellemek için PHP kodu.
  3. Ülke Kodları Listesi: IP adreslerini karşılaştırmak için hangi ülkelerden gelen IP adreslerini engellemek istediğinizi belirten bir liste.

Adımlar

1. GeoIP Veritabanı Edinme

GeoIP veritabanları, IP adreslerini ülkelere göre sınıflandırır. Bu veritabanlarını aşağıdaki kaynaklardan edinebilirsiniz:

Bu veritabanları genellikle CSV, SQL veya JSON formatında olabilir.

2. GeoIP Veritabanını PHP ile Entegre Etme

GeoIP veritabanını PHP uygulamanıza entegre etmek için veritabanını içe aktarabilir ve ardından IP adreslerini sorgulayarak ülke kodlarına dönüştürebilirsiniz.

Örneğin, MaxMind GeoLite2 veritabanını kullanarak bir IP adresini ülke koduna dönüştürebilirsiniz:

<?php
require_once ‘vendor/autoload.php’; // Composer autoload

use GeoIp2\Database\Reader;

// GeoIP veritabanını yükleyin
$reader = new Reader(‘/path/to/GeoLite2-Country.mmdb’);

// IP adresini al
$ipAddress = $_SERVER[‘REMOTE_ADDR’];

// Ülke kodunu al
try {
$record = $reader->country($ipAddress);
$countryCode = $record->country->isoCode;
} catch (Exception $e) {
// Hata durumunda varsayılan ülke kodu
$countryCode = ‘US’;
}
?>

3. Ülke Kodlarına Göre Erişimi Engelleme

Belirli ülkelerden gelen IP adreslerini engellemek için, ülke kodlarını karşılaştırarak bir erişim kontrolü yapabilirsiniz. Aşağıdaki kod, ülke koduna göre IP adreslerini engellemek için örnek bir yaklaşımı göstermektedir:

<?php
// Engellenecek ülkeler listesi
$blockedCountries = [‘CN’, ‘RU’, ‘BR’]; // Örneğin, Çin, Rusya, Brezilya

// IP adresini al
$ipAddress = $_SERVER[‘REMOTE_ADDR’];

// Ülke kodunu al
try {
$record = $reader->country($ipAddress);
$countryCode = $record->country->isoCode;
} catch (Exception $e) {
// Hata durumunda varsayılan ülke kodu
$countryCode = ‘US’;
}

// Erişimi engelle
if (in_array($countryCode, $blockedCountries)) {
header(‘HTTP/1.0 403 Forbidden’);
echo ‘Erişim engellendi.’;
exit;
}

// Diğer kodlar
?>

4. Performans ve Verimlilik

  • Önbellekleme: Veritabanı sorgularını önbelleğe alarak performansı artırabilirsiniz.
  • Güncellemeler: GeoIP veritabanlarının düzenli olarak güncellenmesi gerekmektedir. Güncellemeleri kontrol edin ve veritabanınızı güncel tutun.

 

PHP ile ülke koduna göre IP adreslerini engellemek, kullanıcıların coğrafi konumlarına göre erişimi kontrol etmenin etkili bir yoludur. GeoIP veritabanlarını kullanarak IP adreslerini ülkelere dönüştürebilir ve ardından bu ülkelere göre erişim kısıtlamaları yapabilirsiniz. Bu yöntemi uygulayarak, istenmeyen coğrafi bölgelerden gelen trafiği etkili bir şekilde yönetebilirsiniz.

Sorularınız mı var?

Size Uygun Hizmeti Beraber Seçelim.

iletişim