Beni Takip Edin
Arama Yap
Beni Takip Edin
Arama Yap
PHP Ülkeye (İP) Göre Ziyaretçi Yönlendirme

PHP Ülkeye (İP) Göre Ziyaretçi Yönlendirme

Sitemizde bazen bir çok sebepten ötürü ülkeye göre filtreleme yada engelleme işlemi yapmak isteyebiliriz, bunu yapmanın bir çok yöntemi var. Ben bir kaç yıldır get methodu ile ip adresini http://ip-api.com/php/ sitesine gönderip dönen sonuca göre ülkeyi tespit ediyordum fakat cloudflare kullandığımda $_SERVER[“REMOTE_ADDR”] fonksiyonunun düzgün çalışmadığını tespit ettim bunun içinde farklı bir çözüm olarak $_SERVER[“HTTP_CF_IPCOUNTRY”] fonksiyonunu keşfettim. Fazla uzatmadan bu iki yöntemi de sizinle paylaşacağım.

1.Yöntem:

Bu yöntemin avantajları sadece ülke verisine değil kullandığı operatör, yaşadığı şehir, para birimi vs. bilgileri alabiliyorsunuz. Dezavantajları ise dolaylı yoldan yaptığımız için 1 saniyelik bir gecikme oluyor ve cloudflare yada başka CDN hizmeti kullanıyorsanız düzgün çalışmıyor.

 
$ip = $_SERVER["REMOTE_ADDR"]; // Kullanıcının İP adresi tespiti


$query = @unserialize(file_get_contents('http://ip-api.com/php/'.$ip));


if ($query['countryCode'] == 'US' OR $query['countryCode'] == 'GB') {  // Kullanıcı Amerika yada İngiltere'den giriş yaparsa bu kod çalışır.


    $url = "https://tr.wikipedia.org/wiki/%C4%B0ngiliz_Milletler_Toplulu%C4%9Fu";


} elseif ($query['countryCode'] == 'TR') {  //Kullanıcı Türkiye'den giriş yaptıysa bu kod çalışır.


    $url = "https://www.youtube.com/watch?v=5K3Jdux_DDg";


} else { // Kullanıcı yukarıda belirttiğimiz ülkelerden farklı bir ülkede yaşıyorsa bu kod çalışacak.


   $url = "https://www.youtube.com/watch?v=A7nem34-tKE";


}

header("Location: $url");

2.Yöntem:

Bu yöntemin avantajı $_SERVER[“HTTP_CF_IPCOUNTRY”] fonksiyonunu kullanarak direkt ülke verisine ulaşabiliyoruz, ekstra başka bir yerden sorgulama işlemi olmadığı için çok hızlı şekilde erişebiliyoruz. Dezavantajı sadece ülke verisine erişiyor olmamız, eğer daha fazlasına ihtiyaç duyarsanız 1. yöntemi kullanabilirsiniz.

<?php 
$ip = $_SERVER["HTTP_CF_IPCOUNTRY"]; // Kullanıcının yaşadığı ülkeyi verir.


if ($ip == 'US' OR $ip == 'GB') {  // Kullanıcı Amerika yada İngiltere'den giriş yaparsa bu kod çalışır.


    $url = "https://tr.wikipedia.org/wiki/%C4%B0ngiliz_Milletler_Toplulu%C4%9Fu";


} elseif ($ip == 'TR') {  //Kullanıcı Türkiye'den giriş yaptıysa bu kod çalışır.


    $url = "https://www.youtube.com/watch?v=5K3Jdux_DDg";


} else { // Kullanıcı yukarıda belirttiğimiz ülkelerden farklı bir ülkede yaşıyorsa bu kod çalışacak.


   $url = "https://www.youtube.com/watch?v=A7nem34-tKE";


}

header("Location: $url");
?>

 

Yorum Yap

Harun Uysal