« Geri
Yorumlar
Makaleyi Sakla
Arkadaşıma Gönder
Yazdır
Yazar |
: Sem GÖKSU |
Okunma Sayısı |
: 32950 |
Tarih |
: 07.04.2007 16:08:55 |
Kategori |
: ASP.NET |
Konu |
: ASP.NET Whois Sorgusu |
Açıklama |
: Bir domain adı almak istediğimizde ik olarak başkası tarafından register edilip edilmediğine yani almak için müsait olup olmadığına bakarız. İşte bende bu makale de ASP.NET ile whois sorgusunun nasıl yapılacağını anlatacağım. |
ASP.NET Whois Sorgusu
Merhaba arkadaşlar, bu makalemizde ASP.NET ile whois sorgulama işleminin nasıl yapıldığına bakacağız.
Bir domain adı almak istediğimizde ik olarak başkası tarafından register edilip edilmediğine yani almak için müsait olup olmadığına bakarız. İşte bende bu makale de ASP.NET ile whois sorgusunun nasıl yapılacağını anlatacağım.
Web kaynaklarını uzaktan sorgulamak için System.Net.WebClient sınıfını kullanırız. Bu sınıf internet kaynaklarına erişmek için WebRequest sınıfını kullanır. Burada, bir byte array döndüren ve kaynaktan veriyi indiren WebClient sınıfının Download metodu vardır. Byte olarak gönderilen veri sisteme ANSI olarak encode edilir. Alınan veriyi parse etmek için Regex sınıfını kullanılır. İhtiyacımız olan veriyi elde etmek için de Match sınıfını kullanacağız...
Peki bu bilgileri nereden sorgulayacağız?
Bu bilgileri tutan whois serverları kullanarak istediğimiz domain adını sorgulayabiliriz. Ben bu projemde http://www.directnic.com/whois Whois serverını kullanacağım.
Şimdi örneğimize geçelim;
İlk olarak Bir Web Projesi oluşturalım...

Projemize domain adlarını sorgulamak için kullanacağımız ve domain adını girmemiz için formumuza bir textbox, domain adı uzantısını seçmemiz için bir dropdown, sonucu görüntülemek için label ve whois sorgusunu yapmak için button ekleyelim.
Benim oluşturduğum Whois Sayfası aşağıdaki gibidir;

Şimdi bu işlem için kodlarımızı yazalım;
private string response = "";
protected void btnQuery_Click(object sender, EventArgs e)
{
try
{
string URL = "http://www.directnic.com/whois/index.php?query="
+ this.txtDomain.Text
+DropDownList1.SelectedItem.Text;
byte[] buffer1 = new WebClient().DownloadData(URL);
response = Encoding.Default.GetString(buffer1);
}
catch (WebException exception3)
{
this.txtResult.Text = exception3.Message;
}
try
{
string srart = "<p class=\"text12\">";
string end = "</p>";
Match match = new Regex(srart + "(?<MYDATA>.*?(?=" + end+ "))", RegexOptions.Singleline | RegexOptions.IgnoreCase).Match(response);
this.txtResult.Text = match.Groups["MYDATA"].Value + "<br>";
if (! match.Groups["MYDATA"].Success)
{
lblSonuc.Text = "Bu Domain Adını Register Edebilirsiniz..";
}
else
{
lblSonuc.Text = "Bu Domain Adı Register Edilmiş..";
}
}
catch
{
this.txtResult.Text = "Sorry the whois information is currently not available !!";
}
|
Evet şimdi projemizi çalıştıralım;

Şimdi domain adını sorgulayalım;

Whois sonucu bu domain adının daha önceden register edilmiş olduğunu gördük; şimdide register edilmemiş bir domain adı sorgulayalım;

Bu makalenin de sonuna geldik, başka bir makalede görüşmek üzere başarı ve iyi günler dilerim.
Sem GÖKSU
MCP | MCAD.NET | MCTS
Örnek Kodlar için mail adresimi kullanabilirsiniz
askisem@hotmail.com
Kaynaklar
http://www.codeproject.com