PHP ile Domain Whois

PHP ile Domain kontrolünü file_get_contents ya da cURL kullanmadan da yapabiliriz. Domain’in herhangi bir NS’ye kayıtlı olup olmadığına bakabiliriz. Bunu dns_get_record fonksiyonu ile yapmamız mümkün dns_get_record fonksiyonunun temel olarak aldığı argüman bir adrestir. Farklı argümanlar da alır biz şimdilik bir adres denemesi yapalım.

dns_get_record(“aligoren.net”);

Fark ettiyseniz http kullanmadan yapıyoruz sorgulamamızı. Devam edeim bu sorgulamanın sonucunda şöyle bir çıktı aldık:

Fakat bize asıl lazım olan NS kayıtları. Domain kontrolünü NS kayıtları üzerinden sağlayalım. Bu haliyle zaten çalışmadı mı? Çalıştı neyse devam edelim. NS kayıtlarını DNS_NS ile alıyoruz. Örneğin:

dns_get_record(“aligoren.net”, DNS_NS);

Az önceki kadar uzun olmasa da bir çıktı alıyoruz yine:

Şimdi yaptığımız işleri biraz daha büyütelim ve fonksiyonelliğe adım atalım. Artık bu fonksiyondan gelen parametreyi yansıtsın.

Evet artık fonksiyonel olarak kullanıma hazır bir mini checker yaptık. Ancak şu array çıktıları var onları ortadan kaldıralım mı? Yerine domain kullanılabilir ya da kullaniliyor mesajını verelim.

Bizim $domain adında bir değişkenimiz vardı. Bu değişken array’i hafızada saklıyordu. Yani çıktısı array olan değeri hafızasında tutmaktaydı. Bizde bundan faydalanarak php’nin count();fonksiyonunu kullanacağız. Bu fonksiyon dizi içindeki elemanları saymaktadır.

Neden count dedik? Eğer var olmayan bir domain olsaydı boş bir array olduğunu görecektik. Burada sayılabilirlik kontrolü yaptık.

Birden fazla domaini de kontrol edebiliyoruz. Eğer bunu istersek foreach kullanabiliriz.

Fonksiyona gelen parametreleri bir adres gibi diz diyoruz ya da sırala artık nasıl uygun görürseniz. Sonrasında bunu dns_get_record fonksiyonuna yolluyoruz ve bu fonksiyonu da $buldeğişkenine atıyoruz.

Şimdi fonksiyonumuz çalışır vaziyette. Bu mini fonksiyon nasıl kullanılabilir ona bakalım.

$domain_url = array(’aligoren.com’, ’aligoren.net’, ’hello.com’,
’aligoren.org’, ’fenerbahceliali.com’, ’ge.tt’);

Burada bir dizi oluşturup içerisini adreslerle doldurduk ve $domain_url adındaki değişkene atadık. Artık bir array’i temsil ediyor.

$kontrol = domain_kontrol($domain_url);

print_r($kontrol);

Son olarak az önceki fonksiyonumuza az önce oluşturduğumuz $domain_url dizisini yolladık ve bu fonksiyonumuzu $kontrol değişkenine atayıp yazdırdık.

Bu da çıktımız:

Son olarak bu fonksiyonu nesnel hale getirip bir sınıf olarak kullanabiliriz.

kullanım olarak da

$kontrol_et = new DomainKontrol($domain_url);
$kontrol_et->domain_kontrol();

şeklinde kullanabiliriz.

Bir önceki yazımız olan PHP'de SQL Injection Koruması - 1 başlıklı makalemizde htmlentities, PHP Güvenlik ve PHP htmlentities hakkında bilgiler verilmektedir.

About This Author

Uzun yıllardır yazılım ile uğraşıyorum. PHP ile başladığım yazılım hayatıma şu an PHP'nin yanında Swift ve Python ile devam ediyorum. Bu güne kadar bir çok proje geliştirdim ve yeni projeler geliştirmeye de devam ediyorum. Bu sitede yazılımseverlere faydalı bilgiler vermeye, yazılım geliştirmeye, öğrendiklerimi paylaşmaya, yeni başlayanlara yol göstermeye ve onlara yardımcı olmaya çalışıyorum.

Post A Reply