Сегодня напишем свое собственное приложение для получения информации о любом домене.
Пример работы этого приложения:

На форму поместите текстовое поле TextBox, кнопку для нициации проверки Button и RichTextBox. Введя имя домена и нажав на кнопке «Проверить» мы получим всю доступную информацию об интересующем нас домене, если тот, конечно, зарегистрирован.
Вот исходный код проэкта (не забываем подключить пространства имен System.IO и System.Net.Sockets поскольку работа будет вестись по tcp подключению:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//Возможно и напрямую использовать whois.internic.net
//а также: whois.ripn.ru,who.is,whois.pp.ru,
// whois.internic.net,whois.ripn.net
TcpClient WhoisServ =
new TcpClient("whois.verisign-grs.com", 43);
BufferedStream BufferedStreamWhoisServ =
new BufferedStream(WhoisServ.GetStream());
StreamWriter swSend =
new StreamWriter(BufferedStreamWhoisServ);
swSend.WriteLine(txbx_domainName.Text.Trim());
swSend.Flush();
StreamReader srReceive =
new StreamReader(BufferedStreamWhoisServ);
string DomainInfo = String.Empty;
try
{
while (!srReceive.EndOfStream)
DomainInfo += srReceive.ReadLine() +
Environment.NewLine;
}
catch (IOException)
{
}
finally
{
WhoisServ.Close();
}
rtxbx_domainInfo.Text = DomainInfo;
}
}
Ключевым моментом является конструкция:
TcpClient WhoisServ =
new TcpClient("whois.verisign-grs.com", 43);
Так мы создали объект TcpClient, передав в конструктор имя сервера и номер порта серсера. Код данного конструктора предпринимает множество попыток установки соединения с сервером.
Мы могли бы создать объект TcpClient обычным способом и затем вызвать соответствующую перегрузку метода Connect, но такой подход менее гибкий.
Весь остальной код призван поместить получаемые потоковые данные в некоторую переменную DomainInfo. Вот и все сложности.
Единственное, что можно еще улучшить, так это добавить выпадающий список с выбором сервисов, через который произвести проверку домена.