Banyak cara yang dapat dilakukan untuk mendapatkan posisi koordinat khususnya latitude dan longitude Google dengan menggunakan IP. Beberapa diantaranya berbayar seperti IPStack dan juga IP2Location. Apakah ada yang gratis?
Saya pernah membandingkan IPStack dan IP2Location, sayangnya database lokasi yang dimiliki keduanya masih kurang valid, saya cek IP komputer saya di Bandung, IP menunjukan di Sumatera utara, walaupun masih sama-sama milik PT. Telekomunikasi di Indonesia (Telkom). Terakhir saya menggunakan layanan dari keycdn.com. Gratis dan lokasinya lebih valid. Caranya seperti berikut.
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
//Kemudian
$url = "https://tools.keycdn.com/geo.json?host=$ip";
$dt = file_get_contents($url);
$dt = json_decode($dt, true);
$lat = $dt['data']['geo']['latitude'];
$lng = $dt['data']['geo']['longitude'];
$regional = $dt['data']['geo']['region_name'];
$city_name = $dt['data']['geo']['city'];
Cukup mudah kan? sekarang kita sudah mendapatkan latitude, longitude, nama kota dan juga nama regional, jika anda ingin lebih lengkap lagi mendapatkan datanya, silahkan lihat JSON balikan yang diberikan oleh keycdn. Terima kasih