Php Ajax Domain Sorgulama Scripti

Domain Script

Php ve Ajax ile toplu alan adı (domain) sorgulayan bir script kodlayalım. Script, belirlediğimiz alan adı uzantıları için topluca sorgulama yapıp uygun alan adlarını listeleyecek. Alan adı sorgulamak biraz zaman aldığı için sorgulama sırasında Ajax’ın “beforeSend” metoduyla sorgulayana sorgulama bitene kadar hareketli bir görsel gösterecek. Demoda .com, .net, .org, .biz, .info, com.tr, gen.tr uzantıları kontrol ediliyor. Dilerseniz örnekten farklı uzantılar için de sorgulama türetebilirsiniz.

Tüm domain whois uzantıları, whois serverları ve yanıtları için yeni bir yazı yayınladım.

Script üç dosyadan oluşuyor: beybut-domain.php, beybut-sorgu.php ve yukleniyor.gif

beybut-domain.php kaynak kodları aşağıdaki gibi:

<!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" />
<title>Beybut Alan Adı - Domain Sorgulama</title>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
 $(document).ready(function(){
	 $("#img1").hide();
      $("#sorgu-buton").click(function(e){
          e.preventDefault();
		  deger = $('#bunu').val()

	$.ajax({

            type: "POST",
            url: "beybut-sorgu.php",
            data: "sorguc="+deger,
            error:function(){ $('#alan-adlari').html("Uygun alan adları getirilemedi."); }, 
			beforeSend:function () {
        $('#alan-adlari').html("<img src='yukleniyor.gif' />");
    },

            success: function(veri) { $('#alan-adlari').html(veri);}
           
        });
             });
			 
    });     
</script>
</head>

<body>
<p>Beybut alan adı/domain uygunluk kontrolü scripti</p>
<p>com, net, org, biz, info, com.tr, gen.tr uzantılı alan adlarını sorgulamak için aşağıdaki kutucuğu kullanın.</p>
<p>
  <input name="bunu" type="text" id="bunu" size="55" />
  <input type="submit" name="button" id="sorgu-buton" value="Kontrol Et" />
</p>

<div id="alan-adlari"><div id="img1" name="img1"><img src="yukleniyor.gif" /></div></div>
<p>&nbsp;</p>
</body>
</html>

Burada iki form elementi ve birkaç satırlık Js kodu ile sorgumuzu beybut-sorgu.php dosyasına gönderiyoruz.

<?php 
error_reporting(0);

function domainlestir($dom) {
$dom=strip_tags($dom);
$dom=trim($dom);
$dom=str_replace('Ş','s',$dom);	
$dom=str_replace('ş','s',$dom);	
$dom=str_replace('ç','c',$dom);	
$dom=str_replace('Ç','c',$dom);	
$dom=str_replace('Ğ','g',$dom);	
$dom=str_replace('ğ','g',$dom);	
$dom=str_replace('İ','i',$dom);	
$dom=str_replace('ı','i',$dom);	
$dom=str_replace('ö','o',$dom);	
$dom=str_replace('Ö','o',$dom);	
$dom=str_replace('ü','u',$dom);	
$dom=str_replace('Ü','u',$dom);	
$dom=str_replace('"','',$dom);	
$dom=str_replace("'",'',$dom);	
$dom=str_replace('€','eu',$dom);
$dom=str_replace('$','usd',$dom);
$dom=str_replace('?','',$dom);
$dom=str_replace('_','',$dom);
$dom=str_replace('!','',$dom);
$dom=str_replace(',','',$dom);
$dom=str_replace(';','',$dom);
$dom=str_replace('`','',$dom);
$dom=str_replace('^','',$dom);
$dom=str_replace('+','',$dom);
$dom=str_replace('/','',$dom);
$dom=str_replace('\','',$dom);
$dom=str_replace('*','',$dom);
$dom=str_replace('=','',$dom);
$dom=str_replace('}','',$dom);
$dom=str_replace(']','',$dom);
$dom=str_replace(')','',$dom);
$dom=str_replace('[','',$dom);
$dom=str_replace('(','',$dom);
$dom=str_replace('{','',$dom);
$dom=str_replace('&','',$dom);
$dom=str_replace('%','yuzde',$dom);
$dom=str_replace('<','',$dom);
$dom=str_replace('>','',$dom);
$dom=str_replace('|','',$dom);
$dom=str_replace(':','',$dom);
$dom=str_replace('?','',$dom);
$dom=str_replace('`','',$dom);
$dom=str_replace('Q','q',$dom);
$dom=strtolower($dom);
$dom = preg_replace('/[^a-z0-9-. *]/i', '', $dom); 
$dom = str_replace('      ', ' ', $dom);
$dom = str_replace('     ', ' ', $dom);
$dom = str_replace('    ', ' ', $dom);
$dom = str_replace('   ', ' ', $dom);
$dom = str_replace('  ', ' ', $dom);
$dom = str_replace(' ', '-', $dom); 
return $dom;
}




function domain_sorgula($domain)
{

 // fix the domain name:
 $domain = strtolower(trim($domain));
 $domain = preg_replace('/^http:\/\//i', '', $domain);
 $domain = preg_replace('/^www\./i', '', $domain);
 $domain = explode('/', $domain);
 $domain = trim($domain[0]);

 // split the TLD from domain name
 $_domain = explode('.', $domain);
 $lst = count($_domain)-1;
 $ext = $_domain[$lst];

 // the list of whois servers
 // most taken from www.iana.org/domains/root/db/
 $servers = array(
  "biz" => "whois.neulevel.biz",
  "com" => "whois.internic.net",
  "us" => "whois.nic.us",
  "coop" => "whois.nic.coop",
  "info" => "whois.nic.info",
  "name" => "whois.nic.name",
  "net" => "whois.internic.net",
  "gov" => "whois.nic.gov",
  "edu" => "whois.internic.net",
  "mil" => "rs.internic.net",
  "int" => "whois.iana.org",
  "ac" => "whois.nic.ac",
  "ae" => "whois.uaenic.ae",
  "at" => "whois.ripe.net",
  "au" => "whois.aunic.net",
  "be" => "whois.dns.be",
  "bg" => "whois.ripe.net",
  "br" => "whois.registro.br",
  "bz" => "whois.belizenic.bz",
  "ca" => "whois.cira.ca",
  "cc" => "whois.nic.cc",
  "ch" => "whois.nic.ch",
  "cl" => "whois.nic.cl",
  "cn" => "whois.cnnic.net.cn",
  "cz" => "whois.nic.cz",
  "de" => "whois.nic.de",
  "fr" => "whois.nic.fr",
  "hu" => "whois.nic.hu",
  "ie" => "whois.domainregistry.ie",
  "il" => "whois.isoc.org.il",
  "in" => "whois.ncst.ernet.in",
  "ir" => "whois.nic.ir",
  "mc" => "whois.ripe.net",
  "to" => "whois.tonic.to",
  "tv" => "whois.tv",
  "ru" => "whois.ripn.net",
  "org" => "whois.pir.org",
  "aero" => "whois.information.aero",
  "nl" => "whois.domain-registry.nl",
  "uk" => "whois.nic.uk",
  "us" => "whois.nic.us",
  "travel" => "whois.nic.travel",
  "gov" => "whois.dotgov.gov",
  "tr" => "whois.nic.tr",
  "it" => "whois.nic.it"
 );



 $nic_server = $servers[$ext];

 $output = '';

if ($conn = fsockopen($nic_server, 43)) {
  fwrite($conn, $domain."\r\n");
  while (!feof($conn)) {
   $output .= fgets($conn, 128);
  }
  fclose($conn);
 } else {
  die('Hata: Bu servise bağlanılamadı: ' . $nic_server . '!');
 }
 return $output;
}

//

$beybut=domainlestir($_POST["sorguc"]);

//nokta varsa noktadan öncesini alsın. beybut.com ise beybut'u alsın. Böylece diğer uzantıları da kontrol edebilelim.
$noktalimi=substr_count($beybut,'.');
if ($noktalimi>=1) {
$digeruzantilar=explode('.',$beybut);
$digeruzantilar=$digeruzantilar[0];
$digeruzantilar=domainlestir($digeruzantilar);
} else {
$digeruzantilar=$beybut;	
}
//

if (strlen($digeruzantilar)<=2) {
echo 'Lütfen sorgulamak istediğiniz alan adını belirtin.';	
exit;
}

//com, net, org, biz, info, com.tr, gen.tr alan adlarını sorgulatalım.

//com
$sorbakalim=domain_sorgula($digeruzantilar.'.com');
if (strstr($sorbakalim,'No match')) {
echo '<font color="green">'.$digeruzantilar.'.com Uygun.</font><br />';
} else {
echo '<font color="red">'.$digeruzantilar.'.com Alınmış.</font><br />';	
}

//net
$sorbakalim=domain_sorgula($digeruzantilar.'.net');
if (strstr($sorbakalim,'No match')) {
echo '<font color="green">'.$digeruzantilar.'.net Uygun.</font><br />';
} else {
echo '<font color="red">'.$digeruzantilar.'.net Alınmış.</font><br />';	
}

//org
$sorbakalim=domain_sorgula($digeruzantilar.'.org');
if (strstr($sorbakalim,'NOT FOUND')) {
echo '<font color="green">'.$digeruzantilar.'.org Uygun.</font><br />';
} else {
echo '<font color="red">'.$digeruzantilar.'.org Alınmış.</font><br />';	
}

//biz
$sorbakalim=domain_sorgula($digeruzantilar.'.biz');
if (strstr($sorbakalim,'Not found')) {
echo '<font color="green">'.$digeruzantilar.'.biz Uygun.</font><br />';
} else {
echo '<font color="red">'.$digeruzantilar.'.biz Alınmış.</font><br />';	
}
//info
$sorbakalim=domain_sorgula($digeruzantilar.'.info');
if (strstr($sorbakalim,'NOT FOUND')) {
echo '<font color="green">'.$digeruzantilar.'.info Uygun.</font><br />';
} else {
echo '<font color="red">'.$digeruzantilar.'.info Alınmış.</font><br />';	
}
//com.tr
$sorbakalim=domain_sorgula($digeruzantilar.'.com.tr');
if (strstr($sorbakalim,'No match')) {
echo '<font color="green">'.$digeruzantilar.'.com.tr Uygun.</font><br />';
} else {
echo '<font color="red">'.$digeruzantilar.'.com.tr Alınmış.</font><br />';	
}
//gen.tr
$sorbakalim=domain_sorgula($digeruzantilar.'.gen.tr');
if (strstr($sorbakalim,'No match')) {
echo '<font color="green">'.$digeruzantilar.'.gen.tr Uygun.</font><br />';
} else {
echo '<font color="red">'.$digeruzantilar.'.gen.tr Alınmış.</font><br />';	
}


//
?>

Whois servisinden gelen yanıta göre alan adının uygunluk durumunu belirleyip ekrana yazdırıyoruz. Whois servisleri boştaki alan adları için “No match”, “NOT FOUND” ile başlayan çeşitli yanıtlar verebiliyor. Bu yanıt “$sorbakalim” içerisinde bulunuyor. echo ile yanıtı ekrana bastırıp farklı uzantılar için sorgu sayısını artırabilirsiniz. Whois sorgularını 43. porttan fsockopen yöntemiyle yaptığı için bu portun açık olduğuna emin olun.

DEMOİNDİR

 

 

Yazar: admin

Beybut.com yöneticisi ve yazarı. 17 Ocak 1980'de doğdu. Uluslar arası ilişkiler ve siyaset bilimi, Türkçe öğretmenliği eğitim aldı. 1995 yılından beri, özellikle yazılım konusunda profesyonel çalışmalarda bulundu. Pascal, Delphi, Php, sunucu güvenliği ve optimizasyonu, Seo alanlarında çalışmalar yürüttü. Yerel gazetelerde köşe yazarlığı yaptı. Yazın yaşamına dair yarışmalarda birçok ödül kazandı. Şiir, tarih, psikoloji, felsefe ve siyaset bilimi özel ilgi alanları.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir