Cara mendeteksi lokasi pengunjung web pada aplikasi laravel

January 13, 2019
undefined

Aplikasi web bisa di akses dari mana saja di seluruh dunia. Akan tetapi masalahnya adalah terkadang user memiliki karakteristiknya.

Misalnya untuk user yang berada di indonesia akan lebih suka jika web kamu menggunakan bahasa indonesia.

Contoh lain misalnya, jika aplikasi web kamu adalah toko online. Untuk itu kamu bisa menyajikan informasi mata uang sesuai dengan negara. Dengan begini informasi yang di sajikan lebih menyenangkan user.

Nah untuk itu kita perlu mendeteksi lokasi user untuk menyajikan informasi yang cocok untuk user kita.

Untuk itu kita bisa gunakan cara mendeteksi lokasi user dengan alamat ip yang di gunakan untuk mengunjungi web kita.

Akan tetapi untuk user yang menggunakan vpn kita tidak bisa mendapatkan lokasi sebenarnya mereka berada.

Akan tetapi hal itu tidak terlalu jadi masalah sepertinya. Karena jarang orang yang menggunakan vpn.

Nah sekarang bagaimana cara mendeteksi lokasi user yang mengunjungi web kita.

Package Location

Kita bisa menggunakan package laravel location. Dengan package ini kita bisa mendeteksi lokasi user dengan mudah.

Silahkan tambahkan dependency dengan menjalankan perintah composer berikut ini.

composer require stevebauman/location

Detek Lokasi Berdasarkan IP

Untuk mendeteksi lokasi berdasarkan ip bisa dilakukan dengan cara berikut ini.

$position = Location::get('192.168.1.1');

Dan data yang dapat kamu akses adalah seperti ini.

{
 "countryName": "",
 "countryCode": "ID",
 "regionCode": "",
 "regionName": "East Java",
 "cityName": "Blitar",
 "zipCode": null,
 "isoCode": "",
 "postalCode": "",
 "latitude": "-8.0983",
 "longitude": "112.1680",
 "metroCode": "",
 "areaCode": "",
 "driver": "Stevebauman\\Location\\Drivers\\IpInfo"
}

Berkut ini contoh implementasinya. Disini saya meredirect landing page dari salah satu aplikasi web saya.

public function index() {
    $position = Location::get(request()->ip());
    if ($position->countryCode == “ID”) {
        return redirect()->to(‘/id’);
    }
    return view(‘welcome’);
}

Nah begitu saha ya simple. Semoga bermanfaat. Jangan lupa untuk share article ini.

Subscribe to My Newsletter

Thank you for your interest in my blog. Sign up to my newsletter to stay current on the latest news and information me and to be the first to see new blog posts.