Beranda > Codeigniter > Membuat IP-to-Country Mapping dg Codeigniter

Membuat IP-to-Country Mapping dg Codeigniter

Untuk membuat sebuah “IP-to-Country Mapping” lengkap dengan IP address, Browser detect, & OS yg digunakan, menggunakan codeigniter framework, seperti gambar di atas dengan menggunakan codeigniter. maaf jika dalam hal ini, saya anggap teman2 semua sudah mengerti dalam penggunaan MySQL (phpmyadmin, dll). hal pertama yg harus dilakukan adalah:

 

 

  1. Download codeigniter framework
  2. download script sql yg berisikan daftar negara dan code nya.
  3. kalau saya bila mengikuti tutorial2 yg pernah ada, selalu memindahkan folder “application” yg ada di dalam folder “system” menjadi 1 level.. (dalam folder utama codeigniter jd ada 3 folder. application, system dan user_guide.
  4. Buat folder images di bawah folder utama codeigniter.
  5. Download bendera negara lalu extract folder png yg ada di dalam file tsb ke folder images. lalu rename folder “png” tersebut menjadi “flags”.
  6. Dg menggunakan phpmyadmin atau dengan MySQL Tunnel lain nya, buat database baru dengan nama ip2nation. extract script sql yg telah anda download, lalu import ke database ip2nation yang sudah anda buat td. sehingga nanti akan ada 2 table baru (ip2nation & ip2nationcountries) pada database ip2nation, lengkap dg data negara yg sesuai dg ISO 3166-1 alpha-2 country codes.
  7. Buka folder /codeigniter/application/config. disana anda akan temukan beberapa file konfigurasi yg akan anda gunakan dalam menggunakan codeigniter pada web yg akan anda buat. edit file autoload.php lalu rubah baris ke 42 dan 54, masing-masing menjadi

    $autoload['libraries'] = array('database','user_agent');
    $autoload['helper'] = array('url');

    file autoload.php digunakan untuk mengaktifkan script database & user_agent pada folder /codeigniter/system/libraries ketika script pertama dijalankan.

  8. masih pada folder /codeigniter/application/config. edit file config.php lalu rubah baris ke 14 menjadi.

    $config['base_url'] = "http://localhost/ip2nation/";

    pada code di atas, bisa anda sesuaikan dg URL yg anda gunakan saat menginstall sourcecode codeigniter.

  9. masih pada folder /codeigniter/application/config. edit file database.php lalu rubah baris ke 40-43, sesuaikan dengan konfigurasi koneksi database mysql anda. file ini digunakan untuk melakukan koneksi ke database anda.

    $db['default']['hostname'] = "localhost";
    $db['default']['username'] = "root";
    $db['default']['password'] = "";
    $db['default']['database'] = "ip2nation";

  10. Buka folder /codeigniter/application/models, buat file baru dg nama ip2nation.php, lalu isi dg script di bawah ini:

    <?phpclass Ip2nation extends Model{function getCountry(){$sqlcn = ‘SELECT c.code, c.country FROM ip2nationCountries c, ip2nation i WHERE i.ip < INET_ATON(“‘.$_SERVER[‘REMOTE_ADDR’].’”) AND c.code = i.country ORDER BY i.ip DESC LIMIT 0,1′;

    $qcn = $this->db->query($sqlcn);

    if($qcn->num_rows() > 0){

    foreach($qcn->result() as $row){

    $countryName[] = $row;

    }

    return $countryName;

    }

    }

    }

    script tersebut digunakan untuk mengambil data negara & kode negara dari database.

  11. Buka folder /codeigniter/application/views. edit file welcome_message.php menjadi seperti di bawah ini


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns=”http://www.w3.org/1999/xhtml”><head><meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />

    <style type=”text/css”>

    label {

    display: block;

    font-weight: bold;

    font-family: tahoma;

    font-size: 10px;

    }

    #user_agent_status

    {

    padding: 5px 5px 5px 5px;

    width: 115px;

    height: 115px;

    border: 1px #000 SOLID;

    font-family: tahoma;

    font-size: 10px;

    }

    </style>

    <title>IP-to-Country Mapping With Codeigniter</title>

    </head>

    <body>

    <div id=”container”>

    <p>Page rendered in {elapsed_time} seconds</p>

    <?php foreach($countryName as $cN) :

    $filecN = base_url() . ‘images/flags/’ . $cN->code . ‘.png’;

    $filebW = base_url() . ‘images/browser/’ . $this->agent->browser() . ‘.png’;

    $fileoS = base_url() . ‘images/os/’ . $this->agent->platform() . ‘.gif’;

    endforeach;

    ?>

    <div id=”user_agent_status”>

    <label>Your IP address</label><?php echo $this->input->ip_address(); ?><br>

    <label>Your Country</label><img border=”0″ src=”<?php echo $filecN; ?>” /> <?php echo $cN->country; ?><br>

    <label>Your Browser</label><img border=”0″ src=”<?php echo $filebW; ?>” /> <?php echo $this->agent->browser() . ” ” . $this->agent->version(); ?><br>

    <label>Your OS</label><img border=”0″ src=”<?php echo $fileoS; ?>” /> <?php echo $this->agent->platform(); ?><br>

    </div>

    </div>

    </body>

    </html>

  12. Buka folder /codeigniter/application/controllers. edit file welcome.php lalu rubah menjadi seperti di bawah ini

    <?phpclass Welcome extends Controller {function Welcome(){parent::Controller();}

    function index()

    {

    $this->load->model(‘ip2nation’);

    $data[‘countryName’] = $this->ip2nation->getCountry();

    $this->load->view(‘welcome_message’);

    }

    }

    /* End of file welcome.php */

    /* Location: ./system/application/controllers/welcome.php */

    script di atas digunakan untuk mengambil data negara, lalu mengaktifkan script yg akan ditampilkan.

bila anda ingin agar bisa menampilkan logo browser & logo OS yg digunakan. anda bisa mencari image nya di internet. untuk browser, anda tambahkan folder browser pada folder images (/codeigniter/images/browser), begitu juga untuk OS, anda buat folder dg nama os di dalam folder images (/codeigniter/images/os). saya sarankan untuk melakukan resize image2 tersebut menjadi 16×16 pixel, atau maksimal 20×20 pixel untuk mendapatkan tampilan yg baik. bila anda menggunakan image dg ekstensi *.png, pada script tidak perlu ada yg dirubah. tp bila anda menggunakan image dg ekstensi *.gif atau *.jpg, anda cukup mengedit file welcome_message.php dg merubah .png menjadi .gif atau .jpg pada script, seperti yg ada di bawah ini:

karena saya menggunakan server lokal (localhost) untuk melakukan testing script2 di atas.. untuk negara tampil bahwa yg mengakses script tsb berasal dari Japan.. mungkin akan berbeda jg ketika anda yg mencoba nya.

silahkan anda kembangkan lagi topik ini. mungkin agar pengecekan tersebut tampil menjadi sebuah gambar, seperti yg dicontohkan di paling atas dari topik ini.

-Selamat Mencoba & Bravo Programmer Indonesia-

Kategori:Codeigniter
  1. Belum ada komentar.
  1. No trackbacks yet.

Tinggalkan Balasan

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

Logo WordPress.com

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

Gambar Twitter

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

Foto Facebook

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

Foto Google+

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

Connecting to %s

%d blogger menyukai ini: