Bu projemizde, bir domain arama sitesi üzerinden düzenli ifadeleri kullanıp, parametre göndererek nasıl bilgi çekeceğimize bakıp, örnek uygulamamız olan “C# Domain Sorgulama“sını kaynak kodları ile birlikte inceleyeceğiz.

Kodlar:

WebClient wClient;
        string sourceUrl = "";
        string source = "";
        string desen = "alınmamış";

        public MainWindow()
        {
            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 lblSonuc kontrolüne "Daha önce alınmamış" uyarısı atanıyor. Eğer "false" ise "Daha önce alınmış".
                    lblSonuc.Content = "Daha önce alınmamış.";
                else
                    lblSonuc.Content = "Daha önce alınmış.";
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message); // Eğer bir hata verirse yazdırıyoruz.
            }

        }
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                sourceUrl = "http://kimindir.com/" + txtDomain.Text; // "Ara" butonumuza bastığımızda, txtDomain 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 ajax gifleri koyabiliriz. Ben koymadım.
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message); // Eğer bir hata verirse yazdırıyoruz.
            }

        }

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. WebClient sınıfını detaylı olarak buradan inceleyebilirsiniz.

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

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

MainWindow 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.

Github: https://github.com/yusufdoru/domainSorgulama