3 dakika okunma süresi

0 yorum

77

C# ile Domain Alınabilirlik Sorgulama

Bu yazımızda, bir domain arama sitesi olan kimindir.com‘ un üzerinden düzenli ifadeleri kullanıp, parametre göndererek nasıl bilgi çekeceğimize bakıp, örnek uygulamamız olan Domain Alınabilirlik Sorgulama programının kaynak kodları ile birlikte inceleyeceğiz. wClient değişkenimiz ile “kimindir.com” adresine parametre göndererek domain alınmış mı, alınmamış mı kontrolü yapacağız. WebClient, kısaca sitelerin kaynak kodlarını taramamızı sağlar. Bir nevi bottur […]

BSoylu

3 yıl önce

C# ile Domain Alınabilirlik Sorgulama

Bu yazımızda, bir domain arama sitesi olan kimindir.com‘ un üzerinden düzenli ifadeleri kullanıp, parametre göndererek nasıl bilgi çekeceğimize bakıp, örnek uygulamamız olan Domain Alınabilirlik Sorgulama programının kaynak kodları ile birlikte inceleyeceğiz.

wClient değişkenimiz ile “kimindir.com” adresine parametre göndererek domain alınmış mı, alınmamış mı kontrolü yapacağız. WebClient, kısaca sitelerin kaynak kodlarını taramamızı sağlar. Bir nevi bottur yani.


İlk olarak Visual Studio‘ da Proje oluşturduktan sonra kod sayfasına System.Net kütüphanesini eklemeniz gerekmektedir.

using System.Net;

Kaynak Kodlarımız:

// Değişkenlerimizi tanımlıyoruz..
WebClient wClient;
string sourceUrl = "";
string source = "";
string desen = "alınmamış";
// Değişkenler tanımlandı..

public Form1()
{
InitializeComponent();
wClient = new WebClient();
wClient.Encoding = Encoding.UTF8;
wClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wClient_DownloadStringCompleted);
}

void wClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
try
{
source = e.Result; // Başarıyla çekilen kaynak kodlarımız "source" değişkenine atanıyor.
bool varmi = Regex.IsMatch(source, desen); //"desen" içerisindeki ifademizi kontrol ettiriyoruz. Eğer "alınmamış" ifadesi kaynak kodlarımızın içerisinde geçiyorsa, true değeri dönüyor.
if (varmi) // True değeri döndüğünde lbl_Sonuc kontrolüne "Sorguladığınız domain şuanda boştadır. Alım yapabilirsiniz." uyarısı atanıyor. Eğer "false" ise "Sorguladığınız domain daha önce alınmıştır.".
{
lbl_Sonuc.ForeColor = Color.Green; // Domain alınabilir olduğu için lbl_Sonuc labelinin font rengini yeşil yapıyoruz.
lbl_Sonuc.Text = "Sorguladığınız domain şuanda boştadır. Alım yapabilirsiniz.";
}
else
{
lbl_Sonuc.ForeColor = Color.Red; // Domain daha önce alındığı için lbl_Sonuc labelinin font rengini kırmızı yapıyoruz.
lbl_Sonuc.Text = "Sorguladığınız domain daha önce alınmıştır.";
}
Form.ActiveForm.Height = 208; // Sonucu ekranda gösterebilmek için formumuzun yüksekliğini 208 yaparak aşağıya doğru büyütüyoruz.
}
catch (Exception ex)
{
MessageBox.Show(ex.Message); // Eğer bir hata verirse yazdırıyoruz.
}

}

private void button1_Click(object sender, EventArgs e)
{
try
{
sourceUrl = "http://kimindir.com/" + txt_Domain.Text; // "Sorgula" butonumuza bastığımızda, txt_Domain kontrolümüzün içerisindeki değer parametre olarak hedef sitemize gönderiliyor.
wClient.DownloadStringAsync(new Uri(sourceUrl)); // Ve asenkron olarak sonucumuz gelene kadar bekliyoruz. Bu sırada kodlar gelene kadar loading gifleri koyabiliriz. Ama ben gerek duymadım.
}
catch (Exception ex)
{
MessageBox.Show(ex.Message); // Eğer bir hata verirse yazdırıyoruz.
}
}

desen” değişkenimizin içinde; “alınmamış” ifadesi var.

Form1, Visual studio’da yeni bir proje oluşturduğumuzda otomatik eklenen bir xaml dosyasıdır. Projemiz debug edildiğinde ilk olarak bu formu gösterir.

Form1 yapıcı metodu içinde wClient değişkenimiz için WebClient nesnesi yarattık. Encoding özelliğini; Encoding.UTF8 olarak atadık. Bunun nedeni kaynak kodlarının türkçe karakter sorunu olmadan çekebilmektir.

wClient.DownloadStringCompleted olayı(event), hedef sitemizin kaynak kodlarını başarıyla çektiğinde tetikleniyor.

Yorumlar

Henüz yorum yapılmadı, ilk yorumu sen yapmak ister misin?