Asp.Net Multi Domain Whois

Categories Asp NetPosted on

Merhaba arkadaşlar asp.net ile domain whois çekme konusu zamanın da beni çok yormuştu.Google de araştırma yaptığım sırada hep tek bir tane uzantıyı whois nasıl çekeceğimiz anlatılıyor.isimtescil.net de olduğu gibi bir çok uzantıyı aynı anda whois nasıl çekeceğimizi anlatan bir döküman pek fazla yok internette.Asp de olsa bu işi yapmak kolay ama işin içine asp.net girince biraz işler karışıyor.Şimdi size bir çok domain uzantısını nasıl aynı anda whois çekeceğimizi anlatmaya çalışacağım.Umarım başarabilirim.

İlk önce sayfamıza textbox , checkboxlist,button,asp table  ve 1 adet label koyacağız. tasarımı aşağıda ki gibi olacak.

### Şeklinde gördüğünüz asp table dir.Şimdi yapacağımız işlem.

İlk önce public tanımlamalarımızı yapalım.

public TcpClient TcpC = new TcpClient();
public Label lblSonuc = new Label();
public Label lblWhois = new Label();
public Image img_Durum = new Image();</strong>

Daha sonra button kodlarımızı yazalım.


//For döngüsü ile kaç tane uzantımız olmuş önce bunu belirliyoruz.

for (int i = 0; i < chcUzanti.Items.Count; i++)
{
string uzanti = "", url = "";

TcpC = new TcpClient();
if (chcUzanti.Items[i].Selected == true)
{
uzanti = chcUzanti.Items[i].Text;
TcpC.Connect("whois.crsnic.net", 43);
url = txtDomain.Text;</code></strong>
string strDomain = url + uzanti + "\r\n";
byte[] arrDomain = Encoding.ASCII.GetBytes(strDomain);
Stream objStream = TcpC.GetStream();
objStream.Write(arrDomain, 0, strDomain.Length);
StreamReader objSr = new StreamReader
(TcpC.GetStream(), Encoding.ASCII);
string strServerResponse = objSr.ReadToEnd();
strServerResponse = Regex.Replace
(strServerResponse, "\n", "<br>");
lblWhois.Text = strDomain;
TcpC.Close();

//Sonuçlarımızı alıyoruz.Ve asp table ile tablomuzu oluşturuyoruz.Verilerimizi burada göstereceğiz.


if (strServerResponse.IndexOf("No match for") == -1 || txtDomain.Text == "")
{
img_Durum.ImageUrl = "images/hata.png";
lblSonuc.ForeColor = System.Drawing.Color.Red;
lblSonuc.Text = "Domain Alınamaz";
lblError.Text = "";

TableRow tr;
TableCell td;
string hucre = "";

td = new TableCell();
td.Text = "<table width=470 border=0 cellspacing=0 cellpadding=0>";

tr = new TableRow();
tr.Cells.Add(td);
Table1.Rows.Add(tr);

string Domain = url + uzanti;
//Ayrı sayfa da whois sorgulamasını göstermek istiyorsak eğer yeni pencerede açabiliriz.
//Eğer domainimiz alınmışsa bir uyarı veriyoruz.Ve domaini kimin aldığını gösteriyoruz.
hucre =
"<tr>" +
"<td width=84><b> Domain Adı : </b></td> " +
"<td width=125><b>" + strDomain + "</b></td>" +
"<td width=88><b> Domain Durumu :  </b></td> " +
"<td width=105><b> " + lblSonuc.Text + "</b></td> " +
"<td width=50><b><a  href=Whois.Aspx?Domain=" + Domain.ToString() > Kim Almış </a></b></td>" +
"</tr>";

td = new TableCell();
td.Text = hucre;
tr = new TableRow();

tr.Cells.Add(td);
Table1.Rows.Add(tr);

td = new TableCell();
td.Text = "</table></td>";
tr = new TableRow();

tr.Cells.Add(td);
Table1.Rows.Add(tr);

}

//Eğer domain boşta ise domainin boşta olduğunu belirtiyoruz.
//Ve asp table ile gösteriyoruz.
else
{
img_Durum.ImageUrl = "images/tamam.png";
lblSonuc.ForeColor = System.Drawing.Color.Green;
lblSonuc.Text = "Domain Alınabilir";
lblError.Text = "";</p>
TableRow tr;
TableCell td;
string hucre = "";

td = new TableCell();
td.Text = "<table width=430 border=0 cellspacing=0 cellpadding=0>";

tr = new TableRow();

tr.Cells.Add(td);
Table1.Rows.Add(tr);

hucre =
"<tr>" +
"<td width=73><b> Domain Adı : </b></td> " +
"<td width=110><b>" + strDomain + "</b></td>" +
"<td width=77><b> Domain Durumu : </b></td> " +
"<td width=103><b>" + lblSonuc.Text + "</b></td> " +
"</tr>";

td = new TableCell();
td.Text = hucre;
tr = new TableRow();

tr.Cells.Add(td);
Table1.Rows.Add(tr);

td = new TableCell();
td.Text = "</table></td>";
tr = new TableRow();

tr.Cells.Add(td);
Table1.Rows.Add(tr);

}
}
}

Whois.Aspx Sayfamız

Bir adet label ekliyoruz.Ben label adını lblWhois yaptım siz herhangi bir isim verebilirsiniz.


Public olarak TcpClient Tanımlıyoruz.

public TcpClient TcpC = new TcpClient();

Queryden gelen verilere göre domain whois sorgulamamızı ayrı pencerede whois.aspx dosyasına yaptırıyoruz.
//Sorgulama komutumuz.

private void Sorgula()
{
string uzanti = Request.QueryString["Domain"];</code></strong>

TcpC = new TcpClient();

TcpC.Connect("whois.internic.net", 43);

string strDomain = uzanti + "\r\n";
byte[] arrDomain = Encoding.ASCII.GetBytes(strDomain);

Stream objStream = TcpC.GetStream();

objStream.Write(arrDomain, 0, strDomain.Length);

StreamReader objSr = new StreamReader
(TcpC.GetStream(), Encoding.ASCII);

string strServerResponse = objSr.ReadToEnd();

strServerResponse = Regex.Replace
(strServerResponse, "\n", "<br>");

lblWhois.Text = strServerResponse;

TcpC.Close();
}

//En son sorgula komutumuzu form load a koyduğumuz zaman işlemimiz tamamlanmış olur.

protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Sorgula();
}
}
Beğendiyseniz Paylaşmak İster misiniz?

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.