Ücretsiz Whois API

Ücretsiz Whois API

PHP

Merhaba değerli okular, bugün sizlere birkaç gündür üzerinde çalıştığım, tamamen ücretsiz, sorgu limiti olmayan PHP Whois Sorgulama API tanıtımını ve kullanımı göstereceğim. Çoğu yazılımcı güncel whois verilerini çekmek için en sağlıklı yöntemin api kullanmak olduğunu bilir ama maalesef çoğu api sağlayıcı bu bilgileri ücreti karşılğında sunar.

Son zamanlar da benim de bir Whois API'ye ihtiyacım oldu ama her tarafta ücretli olması canımı sıktı ve kolları sıvadım. API tamamen bana ait değil ama varolan bir API'yi daha basit bir hale getirerek kolay kullanıma sahip bir şekilde sizlere sunmak istedim. Çünkü henüz yazılıma yeni başlamış girişimciler detaylı bir API'yi anlamakta zorluk çekebiliyor, bu yüzden Whois sorgulama API'sini kolay kullanılabilir bir hale getirmek amacımdı.

Whois API nedir?

Whois sorguşama API'si kullanıcıların bir alan adı kullanarak alan adı bilgilerinin oluşturulma tarihi, güncellenme tarihi, sona erme tarihi, alan adı yaşı, kaydedenin iletişim bilgileri, telefon numarası, e-posta adresi, alan adının kullandığı ad sunucuları ve çok daha fazlası gibi kapsamlı bir WHOIS verisi döndürür.

Ücretsiz Whois API tanıtımı

Genel olarak şalışma şekli gayet basit. Belirtilen alan adının whois bilgilerini içeren dizilerimiz var ve bu dizilerimiz encode edilmiş. Size sağlayacağım bir link ile json ile encode edilmiş verileri decode yapıp çekmek olacak.

Whois API neler yapar?

  • Alan adının kullanılabilirliğini sorgulayabilirsiniz.
  • Alan adının yanlış veya boş doldurulması halinde hata kodları alırsınız.
  • Alan adı oluşturulma, güncelleme ve son yenileme tarihlerini öğrenebilirsiniz.
  • Alan adınık kaydedenin iletişim bilgileri, telefon numarası, e-posta adresi bilgilerini öğrenebilirsiniz.
  • Alan adının kullandığı ad sunucularını ve çok daha fazlasını öğrenebilirsiniz.

PHP Whois API kullanımı

Whois API kullanımı gayet basittir. https://eminylmz.dev/whois/api?domain=eminylmz.dev görmüş olduğunu bağlantı GET URL Parametresinde ki alan adının whois bilgilerini karşınıza json encode olarak gelir. Yapmamız gereken bu verileri whois bilgilerini çekmek istediğimiz sayfaya decode ederek dizi haline çevirmek. Bundan sonrasında her türlü veriyi kısa kodlarla çekebilirsiniz.

index.php dosyası oluşturarak Whois bilgierini çekme aksiyonlarını alalım.

$response = file_get_contents("https://eminylmz.dev/whois/api?domain=eminylmz.dev");
$result = json_decode($response);
echo "<pre>";
print_r(json_decode($response));
echo "</pre>";

Yukıarda encode edilmiş json verilerini decode ettik ve diziye (Array) çevirdik. Şimdiyse diziden verilerimizi çekelim.

Whois verilerinin çektiğimiz veriler üç farklı diziden oluşmakta.

  1. domain_availability: Alan adı kullanılabilirlik sonucunu verir. [1] => Kullanılabilir - [0] => Kullanılamaz
  2. domain_whois: Alan adı whois bilgilerini parçalanmış halinde verir. Verileri teker teker yazdırabilirsiniz.
  3. raw_text: Alan adı whois bilgilerini ham yazı olarak verir.

domain_whois Kullanımı

<table border="1" cellpadding="10">
  <tr>
    <td>Domain Adı:</td>
    <td><?php echo $result->domain_whois->domain_name; ?></td>
  </tr>
  <tr>
    <td>Barındırıldığı Firma:</td>
    <td><?php echo $result->domain_whois->registrar; ?></td>
  </tr>
  <tr>
    <td>IANA ID:</td>
    <td><?php echo $result->domain_whois->registrar_iana_id; ?></td>
  </tr>
  <tr>
    <td>Nameserver:</td>
    <td><?php echo $result->domain_whois->name_server[0] ." - ". $result->domain_whois->name_server[1]; ?></td>
  </tr>
</table>

domain_availability Kullanımı

<?php if ($result->domain_availability->status == 1) { ?>
 <p>Bu alan adını kullanabilirsiniz!</p>
<?php } if($result->domain_availability->status == 0){ ?>
 <p>Bu alan adı başka biri tarafından alınmış!</p>
<?php } ?>

raw_text Kullanımı

<pre><?php echo $result->raw_text->content; ?></pre>

İşte kullanımı bu kadar basit. Görmüş olduğunuz dizi içinde ki tüm verileri istediğiniz gibi basit bir şekilde çekebilirsiniz.

Ücretsiz Whois API

Tarih formatını çeviren fonksiyonu kullanın

Whois alan adı sorgulama API'si oluşturma, güncelleme ve son yenileme tarihini sizlere 2022-02-17T13:40:21Z bu şekilde verir ama bu tarih formatı da pek okunabilir değildir. Bu formatı 17 Şubat 2022 şeklinde çevirecek fonksiyonu kullanmak daha sağlıklı olacaktır.

function convertDate($date){
  setlocale(LC_ALL, 'tr_TR.UTF-8');
  return strftime('%e %B %Y', strtotime($date));
}

// Kullanımı
echo convertDate($result->domain_whois->creation_date);

Alan adı yaşını hesaplayan fonksiyon

Alan adı yaşını normalde direkt API aracalığı ile vermeyi düşündüm ama hem hız etkenleri ve en doğru sonuç için bunu API'yi çektiğiniz yerde yapmanızı daha doğru buldum. Bu aksiyonu alan adının oluşturulma tarihi ve bugünki tarih arasındaki gün farkını alarak yapacağız.

function convertDiffDate($date){
  setlocale(LC_ALL, 'tr_TR.UTF-8');
  return strftime('%Y-%m-%e', strtotime($date));
}

// İki tarih arasındaki toplam günü hesaplıyoruz.
$createDate  = new DateTime(convertDiffDate($result->domain_whois->creation_date));
$nowDate     = new DateTime(date("Y-m-d"));
$interval    = $createDate->diff($nowDate);

$total = $interval->format('%a'); // İki tarih arasındaki toplam gün.

// Eğer 360 güne eşit veya fazlaysa kaç yıllık olduğunu yazdıracak.
if ($total >= 360) {
  $monthTotal = $total/365;
  echo floor($monthTotal).' Yıl<br>';
}
// Eğer alan adı 360 günden düşükse kaç günlük olduğunu yazdıracak.
if ($total < 360) {
  echo $interval->format('%a Gün');
}

Hata kodları

  • 406: Geçersiz veya hatalı alan adı formatı.
  • 404: Alan adı girilmedi, boş bırakıldı.

Gereksinimler Sürüm V1

  • PHP >= 7.2 sürümünü destekler
  • php-curl
  • php-mbstring

Kullanım Sözleşmesi

  • Bu API'yi kullanan kullanıcılar bu API'nin tamamen ücretsiz olduğunu ve herhangi bir destek haklarının olmadığını kabul ederler.
  • İleriki zamanlarda API'de bozulma, çalışmama veya buna benzer durumlarda, kullanıcı herhangi bir hukuki talepte bulunamayacağını ve bu durumlardan eminylmz.dev sitesinin sorumlu olmadığını kabul eder.
  • Kullanıcı bu servisi kötü amaçlar için kullanmayacığını ve sistemi lehine çevirmeyeceğini kabul eder.
  • eminylmz.dev bu API'yi ömür boyu sağlayacağını kabul etmez ama API bozulmadığı veya güvenlik açığı doğurmadığı sürece siz kullanıcılara sunmaya devam edeceğini kabul eder.

Yorumlar (1)

  • EFE AVKAN 4 ay önce

    hocam acaba https://eminylmz.dev/whois/api?domain=eminylmz.dev kaynak kodunu paylaşabilirmisiniz ? Yanıtla

    • Emin Yılmaz 4 ay önce

      Merhaba Efe, github.com/io-developer/php-whois adlı adresteki API'yi kullanabilirsin ama eğer daha basit bir şekilde kullanmak istiyorsan makalemin detayında ki gibi kullanman daha iyi olacaktır. Belirttiğim API'deki tüm verileri fazlasıyla sizlere sundum. Hız konusunda bir problem yok iki şekilde de aynı hızı alırsınız. Kolay gelsin.