[08.15] Oleh: Raka Yusuf
Ini dia yang susah-susah gampang: merubah alamat IP menjadi lokasi, alias mengkonversi IP address ke lokasi, baik negara atau kota. Lah, untuk apa?
Ada kalanya kita ingin melihat pengunjung situs kita berasal dari lokasi mana. Cara yang paling gampang ialah melihat dan mencatat alamat IP pengunjung kita. Tentunya ini bisa dilakukan dengan menuliskan sedikit script di sisi server (server-side scripting). Misalnya, dengan PHP kita dapat melihat alamat IP pengunjung dengan beberapa cara, antara lain dengan variabel lingkungan (environment variable) seperti $_SERVER[HTTP_CLIENT_IP] atau $_SERVER[REMOTE_ADDR]. Lihat caranya di sini.
Nah, setelah diperoleh alamat IP, bagaimana kita dapat mengetahui, di lokasi manakah posisi pengunjung dengan alamat IP tersebut? Tentu kita harus melakukan sedikit (lagi) coding untuk merubah atau melakukan konversi alamat IP ini menjadi lokasi. Loh, memangnya alamat IP ini tetap lokasinya? Ya, lokasi alamat IP dapat dikatakan tetap. IANA telah membagi-bagi alokasi alamat IP seluruh dunia. Bila ada perubahan lokasi pun, amatlah sedikit.
Ada cara yang mungkin lebih mudah bagi sebagian orang untuk melakukan konversi alamat IP ke lokasi, misalnya dengan situs www.ip2location.com atau www.iplocationtools.com. Kita tinggal memasukkan alamat IP maka mereka akan memberitahukan lokasi alamat IP tersebut, komplit beserta kota, koordinat bumi (latitud dan longitud), zona waktu, ISP pengunjung, dan lain-lain. Namun mereka menyediakan layanan terbatas, kita tidak bisa sebanyak-banyaknya melakukan lookup. Yang akan dibahas di sini ialah konversi alamat IP ke lokasi secara manual, sekalian mengetahui sedikit cara kerja situs-situs seperti itu. Keterbatasannya ialah: lokasi hanya memuat nama negara dan basis data yang digunakan untiuk konversi mungkin tidak lengkap.
Sebelum mengkonversi alamat IP ke lokasi, kita harus merubahnya ke dalam bentuk IP number. Yang disebut IP number ialah bentuk lain dari alamat IP. Alamat IP (versi 4) terdiri 32 bit. IP number merupakan pembacaan langsung nilai desimal dari ke-32 bit ini. Namun alamat IP yang kita jumpai sehari-hari ditulis dalam 4 oktet. Dengan demikian, kita dapat menggunakan rumus di bawah ini untuk menghitung IP number.
IP Number = (256^3)*Oktet1 + (256^2)*Oktet2 + (256^1)*Oktet3 +
            (256^0)*Oktet4
Contoh: alamat IP 114.79.62.93 dihitung dengan rumus tersebut:
IP Number = (256^3)*114 + (256^2)*79 + (256^1)*62 + (256^0)*93
          = 16777216*114 + 65536*79 + 256*62 + 93
          = 1917795933
Setelah diketemukan IP number, maka kita tinggal melakukan lookup terhadap IP number ini ke tabel yang sudah disediakan banyak pihak :) misalnya di http://ip-to-country.webhosting.info/book/print/5. Pada saat tulisan ini ditulis, versi terakhirnya ialah 14 Desember 2010 dan dapat diunduh di link ini (bila link tidak bisa diakses, silakan cari di alamat di atas). Datanya sudah hampir setahun yang lalu, tapi lumayanlah.
Data tersebut berupa file CSV yang dapat diimpor ke basis data manapun. Tabel utamanya terdiri dari beberapa field, yakni IP_FORM, IP-TO, COUNTRY_CODE2 (nama negara dalam 2 huruf), COUNTRY_CODE3 (nama negara dalam 3 huruf), COUNTRY_NAME (nama negara).
IP  number yang kita peroleh dengan menghitung tadi harus dicari ke tabel tersebut, misalnya dengan perintah SQL yang kira-kita berbunyi seperti ini:
SELECT COUNTRY_CODE3, COUNTRY_NAME FROM nama_tabel WHERE IP_FROM <= ip_number AND ip_number <= IP_TO
Keterangan: nama_tabel ialah nama tabel tempat kita mengimpor file CSV ini.

Nah, selamat melakukan konversi dari alamat IP ke lokasi. Basis data lain yang lebih lengkap berisi nama kota dan region juga serta koordinat bumi. Silakan googling saja :)

Selamat mencoba! Semoga bermanfaat.

-------
Kata kunci untuk search engine: cara konversi alamat IP ke lokasi, cara konversi alamat IP menjadi lokasi, cara konversi IP address menjadi nama negara, cara merubah IP address menjadi nama negara, cara merubah IP address ke lokasi, IP number, cara merubah IP address menjadi IP number.
Labels: , edit post
0 Responses

Posting Komentar