≡ Menu

Membatasi Konten Untuk Pengunjung Dari Negara Tertentu

Geo Targetting

Ada banyak pengunjung yang selalu berbeda di sebuah website. Di setiap pengunjung tentu tidak dari negara yang sama, terkadang ada pengunjung dari negara lain yang juga menuju website tersebut. Hal ini karena setiap pengunjung memiliki alamat IP yang berbeda dikeberadaan lokasinya yang dapat langsung terbaca kecuali menggunakan proxy. Pada dasarnya IP asli dapat mendeteksi langsung tata letak negara/tempat (GEO). Sedangkan jika menggunakan proxy tidak dapat mendeteksi tata letak yang sebenarnya.

Kali ini akan Saya bagikan cara untuk membatasi konten untuk pengunjung dari negara tertentu yang tentunya dengan mudah dan membutuhkan bantuan PHP. Cara ini dapat juga digunakan untuk menampilkan iklan untuk negara tertentu supaya dapat mendapatkan hasil yang lebih baik. Jika kamu pernah melihat situs yang membatasi akses registrasi untuk negara tertentu ? Maka hal tersebut bisa juga dilakukan pada script sederhana yang akan Saya bagikan.
Silahkan amati sedikit kode dibawah ini.

<?php
$negara = file_get_contents("http://ipinfo.io/{$_SERVER['REMOTE_ADDR']}/country");
$dari = trim($negara);
if(($dari == "ID")){
echo "Selamat datang";
}else if(($dari == "US")){
echo "Welcome";
}else{
echo "Akses negara dibatasi";
}
?>

Kode diatas dapat dipraktekan langsung dan untuk pengambilan negara, memakai situs lain yaitu ipinfo.io. Pada bagian fungsi trim() di string $dari digunakan untuk menghapus spasi. Untuk membatasi negara menggunakan fungsi if else dan kode negara berbentuk ISO 3166-1 yang dapat dipahami disini

Kode diatas dapat disesuaikan sendiri pada halaman atau konten yang ingin dibatasi untuk negara tertentu. Pastikan sebelum menggunakannya, fungsi file_get_contents() telah diaktifkan pada setting PHP, karena seperti yang Saya katakan diatas, pengambilan negara dari IP memakai bantuan situs lain. Atau jika ingin menggunakan cURL, silahkan salin kodenya dibawah ini.

<?php
function _curl($url){
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_ENCODING,'gzip');
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$loaded = curl_exec($ch);
curl_close($ch);
return $loaded;
}
$negara = _curl("http://ipinfo.io/{$_SERVER['REMOTE_ADDR']}/country");
$dari = trim($negara);
if(($dari == "ID")){
echo "Selamat datang";
}else if(($dari == "US")){
echo "Welcome";
}else{
echo "Akses negara dibatasi";
}
?>

Kode diatas adalah pengganti file_get_contents yang sekiranya dapat mengeksekusi kode lebih cepat. Menggunakan cURL memang lebih baik dibanding file_get_contents, karena cURL lebih memiliki banyak opsi yang dapat digunakan untuk mendapatkan konten website lebih sempurna.
Apabila ada yang ingin ditanyakan tentang diatas, silahkan berkomentar. :mrgreen:

Semoga bermanfaat dan Selamat mencoba

About the author: Apapun yang Saya ketahui dan Saya bagikan. Semuanya berawal dari masa yang disebut pembelajaran.

{ 0 comments… add one }

Leave a Comment