Skip to main content
domain lookup gambar 1

Domain Lookup dengan Codeigniter

Membuat Domain Lookup dengan Codeigniter dipadu Bootstrap. – Pada tutorial kali ini, saya akan berbagi lengkap cara membuat domain lookup disertai dengan code yang dapat didownload oleh teman-teman sekalian. Domain lookup biasanya digunakan untuk mencari apakah sebuah domain ini akan tersedia untuk kita, jika ingin kita beli. Karena domain yang sudah ada pemiliknya tidak akan dapat dibeli.

Baca:

 

Konfigurasi Awal Codeigniter

Sebelum memulai membuat domain lookup ini, sebaiknya dipersiapkan terlebih dahulu file codeigniter dan bootstrap terlebih dahulu. Anda bisa mendownload Bootstrap disini, sedangkan untuk codeigniter bisa anda dapatkan disini.

Untuk bootstrap anda cukup memerlukan file bootstrap.min.css dan file bootstrap.min.js. yang bisa anda tempatkan pada folder dengan nama assets(anda bebas memberi nama folder tersebut).

domain lookup gambar 2

Silahkan lakukan pengaturan awal untuk file codeigniter anda dengan konfigurasi seperti berikut:

Buka file application/config/autoload.php dan tambahkan seperti dibawah ini:


$autoload['helper'] = array('form','url');

Buka file application/config/routes.php dan edit menjadi seperti dibawah ini:


$route['default_controller'] = 'domain';

Buka file application/config/config.php dan tambahkan seperti dibawah ini (saya menggunakan folder latihan):


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

 

 

Buka file application/config/config.php dan edit menjadi seperti dibawah ini:

Membuat file Codeigniternya

Membuat file Domain.php dan diletakkan di directory application/controllers/Domain.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Domain extends CI_Controller {
   function __construct(){
      parent::__construct();
      $this->load->helper('form');
   }

   function _gethost($nama_domain)
   {
     if (checkdnsrr($nama_domain, 'ANY')) {
        $domaintersedia = "domain"." ".$nama_domain." "."unavailable";
        echo $domaintersedia."<br>";
     } else {
       $domaintidaktersedia = "domain"." ".$nama_domain." "."tersedia dan bisa dibeli";
       echo $domaintidaktersedia."<br>";
     }

   }

   function _realUrl($namaDomain){
      if (preg_match("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i", $namaDomain) //pengecekan karakter yang valid untuk domain
         && preg_match("/^.{1,253}$/", $namaDomain) //pengecekan keseluruhan panjang domain
         && preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $namaDomain) )
      {
         return true;
      } else {
        return false;
      }
   }

   public function index()
   {
      $this->load->view('view_domain');
   }
   function cekDomain(){
        $nameDomain = $this->input->post('domain');
        $tld = $this->input->post('tldName');
        //mendapatkan nama domain yang bersih
        $domain=str_replace("http://","",$nameDomain); //menghilangkan http://
        $domain=str_replace("www","",$domain); //menghilangkan www
        $nd=explode(".",$domain);
        $domain_name=$nd[0];
        $domObj=$domain_name.".".$tld;
        //check for real domain url
        $cekUrl = $this->_realUrl($domObj);
        $this->load->library('form_validation');
        $this->form_validation->set_rules( 'domain', 'domain', 'trim|callback__realUrl|required' );
        if($this->form_validation->run()===false){
            redirect('domain');
        } else {
           $this->_gethost($domObj);
        }
   }
}
;?>

 

 

Kemudian dilanjutkan dengan membuat file viewnya view_domain.php dan diletakkan di directory application/controllers/views.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<!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>
   <title>Latihan AlexistDev Domain Lookup</title>
   <link rel="stylesheet" href="<?php echo base_url('assets/bootstrap/css/bootstrap.min.css');?>" >
   <script src="<?php echo base_url('assets/bootstrap/js/bootstrap.min.js');?>"></script>
</head>
<body>
   <div class="container">
     <div class="row">
       <div class="col-md-12">
         <form method="post" action="<?php echo base_url('index.php/domain/cekDomain');?>"role="form">
           <div class="form-group">
             <label>Domain</label>
               <div class="row">
                 <div class="col-md-4">
                   <input type="text" name="domain" class="form-control" placeholder="namadomain" required>
                 </div>
                 <div class="col-md-2">
                   <select name="tldName"class="form-control select2" style="width: 100%;">
                     <option selected="selected" value="com">COM</option>
                     <option value="net">NET</option>
                   </select>
                 </div>
               </div>
             </div>
           <input type="submit" class="btn btn-primary" name="submit" value="Check">
         </form>
       </div>
     </div>
  </div>
</body>
</html>

Penjelasan Singkat

Fungsi _realUrl($namaDomain) yang merupakan fungsi bersifat privat yang artinya tidak dapat diakses secara langsung melalui URI, dan fungsi ini adalah fungsi dengen Regular Expression untuk memvalidasi karakter yang diperbolehkan dimana karakter seperti spasi dan karakter khusus akan ditolak.

function _realUrl($namaDomain){
		if (preg_match("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i", $namaDomain) //pengecekan karakter yang valid untuk domain
            && preg_match("/^.{1,253}$/", $namaDomain) //pengecekan keseluruhan panjang domain
            && preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $namaDomain)   )
		{
			return true;
		} else {
			return false;
		}
	} 

 

 

Fungsi _gethost($nama_domain) adalah fungsi yang juga bersifat privat yang digunakan untuk mengecek apakah sebuah domain sudah memiliki dns record atau tidak, dan kembalian dari fungsi checkdnssr adalah boolean (true atau false).

function _gethost($nama_domain)
  {
    if (checkdnsrr($nama_domain, 'ANY')) {
       $domaintersedia = "domain"." ".$nama_domain." "."unavailable";
       echo $domaintersedia."<br>";
    }else {
      $domaintidaktersedia = "domain"." ".$nama_domain." "."tersedia dan bisa dibeli";
      echo $domaintidaktersedia."<br>";
    }
}

Kemudian fungsi cekDomain() inilah fungsi saat tombol form disubmit maka domain tersebut akan diproses, dan pada bagian dibawah ini, adalah baris kode yang akan memfilter nama domain. Sehingga akan benar-benar didapatkan nama domain tanpa ekstensinya dan tanpa www .

       $domain=str_replace("http://","",$nameDomain); //menghilangkan http://
       $domain=str_replace("www","",$domain); //menghilangkan www
       $nd=explode(".",$domain);
       $domain_name=$nd[0];

Selanjutnya nama domain yang sudah difilter akan digabungkan dengan nama extensinya (misal COM) dengan kode dibawah ini

$domObj=$domain_name.".".$tld;

Barulah setelah nama domain yang benar-benar clear diperoleh , dilanjutkan dengan memasukkan ke dalam fungsi kedua _gethost dan _realUrl untuk kemudian mendapatkan nilai nya berupa text domain tersedia atau tidak.

Catatan Penulis

Menggunakan checkdnsrr haruslah terkoneksi internet karena dia akan mengecek secara online. Walau anda tempatkan di localhost, pastikan anda tetap terkoneksi internet saat mengeksekusi kode tersebut. Dan anda bisa download file secara lengkap DISINI.

 

Leave a Reply

Your email address will not be published. Required fields are marked *