Книга: C# для профессионалов. Том II
Пример: DnsLookup
Пример: DnsLookup
Связанные с DNS и IP классы будут проиллюстрированы с помощью примера, который ищет имена DNS. Этот снимок экрана показывает DnsLookup
в действии.
Пример просто предлагает пользователю ввести имя DNS в основное текстовое поле. Когда пользователь нажимает кнопку Resolve
, пример использует метод Dns.Resolve()
для извлечения ссылки IPHostEntry
и выводит имя хоста и адреса IP. Отметим, что выведенное имя хоста может в некоторых случаях отличаться от введенного имени. Это происходит, если одно имя DNS (www.microsoft.com
) действует просто как прокси для другого имени DNS (www.microsoft.akadns.net
).
Приложение DnsLookup
является стандартным оконным приложением C# с элементами управления, как показано на снимке экрана, и присвоенными им соответственно именами textBoxInput
, buttonResolve
, textBoxHostName
и listboxIPs
. Затем в класс Form1
добавляется следующий метод заданием его в окне свойств Visual Studio.NET в качестве обработчика событий для нажатия кнопки buttonResolve
.
void OnResolve(object sender, EventArgs e) {
try {
IPHostEntry iphost = Dns.Resolve(textBoxInput.Text);
foreach(IPAddress ip in iphost.AddressList) {
int ipaddress = ip.Address;
listBoxIPs.Items.Add(ipaddress);
listBoxIPs.Items.Add(" " + Dns.IpToString(ipaddress));
}
textBoxHostName.Text = iphost.HostName;
} catch(Exception ex) {
MessageBox.Show("Unable to process the request because " +
"the following problem occurred:n" + ex.Message,
"Exception occurred");
}
}
Отметим, что в этом коде перехватываются все исключения — исключение может легко возникать, если пользователь вводит что-то, что не является именем DNS, или если сеть выключена.
После извлечения экземпляра IPHostEntry
используется свойство AddressList
для получения массива, содержащего адреса IP, которые затем перечисляются в цикле foreach
. Каждый адрес выводится как целое число и как строка использованием статического метода Dns.IpToString()
, который делает то же самое, что и экземпляр метода IPAddress.ToString()
.
- Пример установочного скрипта
- Пример из практики
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- Примеры получения статистики
- Пример применения метода «пять почему»
- Пример 12-8. Частота встречаемости отдельных слов
- 1.2.5. Пример программы
- Пример 17-10. Блочный комментарий
- Примеры
- 2. Пример создания базового отношения в записи на псевдокоде
- Пример 9-8. Содержимое $* и $@, когда переменная $IFS -- пуста
- Часть I На примере денег