Beranda > kampus, pendidikan, Teknologi > Mendeteksi Asal Negara dari IP Address

Mendeteksi Asal Negara dari IP Address

Bagaimana mendeteksi IP address berdasarkan asal Negara
Sebelum kita melangkah lebih lanjut, kita harus mengetahui mengenai apa saja yang kita butuhkan didalam mencari informasi diatas, selain itu juga, kita juga harus tahu manfaat apa saja yang bisa kita ambil dari kasus ini.
Kebutuhan kita dalam mencari informasi IP Address dan nama negaranya adalah sebuah database yang berisi informasi sebagai berikut:
Field Type Data Keterangan
IP_FROM NUMERICAL (DOUBLE) Awal range dari IP Address
IP_TO NUMERICAL (DOUBLE) Akhir range dari IP Address
COUNTRY_CODE2 CHAR(2) Dua karakter kode negara (ISO 3166).
COUNTRY_CODE3 CHAR(3) Tiga karakter kode negara (ISO 3166).
COUNTRY_NAME VARCHAR(50) Nama Negara (ISO 3166)

Database diatas tidak perlu kita buat lagi, karena kita bisa dapatkan melalui link dibawah ini:

Download IP-to-Country Database (*.csv.zip)
Manfaat Apa yang Bisa Kita Dapatkan?
Nah… rekan2 pemula programmer yang budiman, mari kita lanjutkan bahasan berikutnya mengenai apa saja manfaat yang bisa kita ambil dari informasi tsb:
1. Menampilkan waktu sesuai lokasi geografis (Negara)
2. Menampilkan website dalam bahasa lokal
3. Memaintenance dan menganalisa log pengunjung untuk website
4. Meredirect pengunjung ke website lokal
5. Menampilkan harga produk dalam mata uang lokal
6. Memfilter hak akses negara asal
7. Memfilter Spam
8. Menampilkan iklan/banner sesuai negara pengunjung
9. dan masih banyak manfaat lainnya yang bisa kita ambil…
Setelah kita mengetahui kebutuhan dan manfaat-nya, lalu bagaimana caranya agar kita bisa tahu IP Address dan asal negaranya? wuuuaahhh… semakin seru nih… :) baiklah, mari kita lanjutkan.
Mendapatkan IP Address
Pertama kita harus bisa mendapatkan IP Address si pengunjung. Perlu kita ketahui bahwa setiap komputer yang bisa akses ke internet memiliki IP Addess yang unik/khas dengan kata lain bahwa seetiap user yang akses ke internet memiliki identitas yaitu IP Address. IP Address adalah alamat yang berhubungan dengan komputer yang berupa angka, seperti 69.55.155.55.
Nah… rekan2 pemula programmer yang setia, dari IP Address inilah kita bisa menentukan nama/asal negara dari si pengunjung website kita, mudah bukan…??!! :), tetapi kita masih perlu sedikit logika didalam mengambil informasi asal negara yang ada didalam database diatas tadi?!.
Pada kesempatan kali ini kita akan menggunakan script ASP untuk mengambil informasi yang ada di dalam database tersebut. Untuk mengambil informasi dalam database tsb, kita perlu petunjuk/indator yang mengarahkan kita untuk mengambil informasi asal negara bersangkutan dari database. Lalu bagaimana kita bisa mendapatkan informasi IP Address tsb? kan IP Address-nya jauh dari kita, apalagi kalau yang akses dari negara lain bahkan benua lain… :(
Rekan2 jangan panik dulu donk… walaupun kita jauh dari si pengunjung, tetapi kita punya teman setia yang setiap waktu bisa memberikan informasi ke kita berkaitan dengan IP Address tersebut, siapa dia…?
Didalam script ASP ada variable server yang namanya: REMOTE_ADDR, nah… ini dia teman kita yang akan memberikan informasi IP Address… yuk kita kenalan…
Variable server REMOTE_ADDR adalah salah satu dari sekian banyak koleksi variable server yang ada. Header HTTP (HyperText Transfer Protocol) dikirimkan dari browser si pengunjung ke server dimana website kita berada, informasi IP Address akan menumpang pada header HTTP tsb yang di tampung dalam variable REMOTE_ADDR, sehingga kita bisa dapakan IP Address dari pengunjung website kita. Mudah bukan? :)
Mengkonversi IP Address ke IP Number
Langkah kita belum selesai, karena kita harus mengkonversi IP Address tersebut yang memiliki format AAA.BBB.CCC.DDD ke dalam format range IP Number seperti yang ada didalam database yang telah kita download sebelumnya. Lalu bagaimana formulanya? Dibawah ini adalah formula untuk mengkonversi IP Address ke IP Number:

A * (256*256*256) + B * (256*256) + C * 256 + D

dinama variable A adalah tiga angka pertama dari IP Address yang telah didapatkan, begitu juga dengan variable B, C, dan D, kita tinggal memasukkan ke dalam formula tersebut dan hasilnya kita gunakan untuk mengambil informasi negara yang ada didalam database.
Mari kita buat satu prosedur yang fungsinya untuk mengkonversi IP Address ke IP Number:
<%
Private Function IPA2IPN(IPA)
strArray = Split(IPA, “.”)

AAA = CInt(strArray(0)) * 256 * 256 * 256
BBB = CInt(strArray(1)) * 256 * 256
CCC = CInt(strArray(2)) * 256
DDD = CInt(strArray(3))

IPA2IPN = AAA + BBB + CCC + DDD

End Function
%>
Jadi syntax untuk mengkonversi IP Address: 69.55.155.55 ke IP Number seperti berikut:
<%= IPA2IPN(“69.55.155.55″ ) %>
atau:
<%= IPA2IPN(request.ServerVariables(“REMOTE_ADDR” )) %>
Akses Database
Setelah kita dapatkan informasi IP Address yang sebelumnya telah kita konversi ke IP Number, langkah selanjutnya adalah mengambil informasi nama negara sesuai IP Address tersebut dari database berdasarkan IP Number tadi. Sebelum melangkah bagaimana kita mengambil informasi nama negaranya, maka kita akan mencoba untuk mengakses database yang telah kita download tadi.
Perlu kita ketahui bahwa database yang kita download sebelumnya, jika kita ekstrak dengan tools WinZIP atau WinRAR akan menghasilkan file dengan format CSV (Comma Delimited), sehingga kita perlu mengkonversi ke dalam database yang kita inginkan. Untuk mengkonversi ke file database mis: Microsoft Access (*.MDB), kita bisa langsung membuka file CSV tsb dengan Microsoft Excel. Setelah file terbuka, sisipkan satu baris pada baris teratas untuk meletakkan header atau nama field yang belum ada. Setelah kita sisipkan satu baris, lanjutkan dengan memberi nama2 field seperti table diatas (lihat struktur table), kemudian save as dengan type file XLS, sudah…??!! keluar dari Excel, dan lanjutkan dengan membuka Micrsofot Access, jika muncul kotak dialog Create a new database using, maka pilih Blank Access database lalu klik OK, dan ketikkan nama file MDB-nya (mis: IP2Country) dan tekan tombol Create. Setelah muncul kotak dialog IP2Country: Database, klik kanan pada bagian yang berwarna putih, pilih Import, setelah muncul kotak dialog Import, pada Files of type, pilih Microsoft Excel (*.xls) dan klik nama file ip-to-country.xls tadi kemudian akhiri dengan klik tombol Import.
Setelah file database access tercipta, kita perlu mengaksesnya. Berikut adalah cara koneksi ke file MDB dengan script ASP:
<%
strConn = “Provider=Microsoft.Jet.OLEDB.4.0; Data Source=” & _
server.MapPath(“ip2country.mdb”)
Set
Conn = server.CreateObject(“ADODB.Connection”)
Conn.Open strConn
%>
Mengambil dan Menampilkan Informasi
Setelah kita berhasil melakukan koneksi ke database, maka langkah selanjutnya adalah membuat script untuk mengambil data dari table ip2country, field2 yang akan kita ambil pada contoh bahasan kali hanya Country_Name. Berikut adalah contoh script tersebut:
<%
Set rsTable = server.CreateObject(“ADODB.Recordset”)
strSQL = “SELECT COUNTRY_NAME ” & _
“FROM IP2COUNTRY ” & _
“WHERE IP_FROM <= IPNumber AND IP_TO >= IPNumber”
rsTable.Open strSQL, Conn
%>
Setelah itu lanjutkan dengan mengetik script untuk menampilkan hasil dari query diatas:
IP Address anda :- <%= request.ServerVariables(“REMOTE_ADDR” ) %>

<% if Not rsTable.Eof Or Not rsTable.Bof Then %>
Negara anda :- <%= rsTable(“Country_Name” ) %>
<% else %>
Negara anda :- belum terdaftar
<%
end if

rsTable.Close
Conn.Close
set rsTable = nothing
set Conn = nothing
%>
Berikut ini ada link untuk:
- kode ASP yang sudah test-run: Download Contoh Program
- Bendera negara diseluruh dunia: http://jaist.dl.sourceforge.net/sourceforge/flags/gif-1.0.tar.gz
Reference: ip-to-country.com

About these ads
  1. 24/04/2008 pukul 4:29 pm | #1

    keren

  2. 17/09/2008 pukul 2:57 pm | #2

    hi..hi… artikelnya bagus bgt mas, tapi sayang aku gak mudeng untuk urusan pemrograman. btw, aku penasaran nih mas, sometimes aku pengen ngeklik iklan adsense-ku dewe gt loh. masalahnya kurang sikit lagi dah bisa di tarik. yg aku tanyain, apakah IP adress itu bisa berubah jika modem aku matiin, masalahnya aku pake speedy unlimittd. yah.. drpd ke warnet kan mas…, makasih ya, aku tunggu reply-nya ya…

    gak bisa berubah ip tetap sama. dimatikan juga tetap sama. keculai kalo anda klik mengunakan daerah hotspot dan pindah pindah

  3. 23/09/2008 pukul 10:33 am | #3

    Mana mas, link download catabase CSV nya ko mati???

  4. 06/07/2010 pukul 1:54 am | #4

    nice info , trims sob….

  5. Hery
    21/11/2010 pukul 8:49 pm | #5

    bagus tks………tapi aku pingin tahu bagaimana kita bisa tahu IP Address dari email orang yang kirim email ke kita ???? Maksudnya ada email masuk nah itu IP addressnya dari negara mana gitu….bisa nggak kasih tahu caranya…

    • 26/11/2010 pukul 5:55 pm | #6

      kalo email ip addresnya belum tau. soalnya misalnya dia pakai yahoo. mungkin dia daftar email menggunakan singapre.sg
      jadi pasti email itu menggunakan server yg singapore punya

  6. 19/04/2011 pukul 10:25 pm | #7

    mantab nih.. thanks alot buat tips nya…

  7. 22/05/2011 pukul 3:18 pm | #8

    bagus banget tulisannya

  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Logout / Ubah )

Twitter picture

You are commenting using your Twitter account. Logout / Ubah )

Facebook photo

You are commenting using your Facebook account. Logout / Ubah )

Google+ photo

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Ikuti

Get every new post delivered to your Inbox.

Bergabunglah dengan 56 pengikut lainnya.