Карта между именами хостов и IP-адресами в C#
Когда вы вводите имя хоста и выбираете Go, программа использует следующий код для поиска хоста и отображения связанных с ним IP-адресов.
using System.Net; ... // Отображение IP-адреса введенного хоста. private void btnGo_Click(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; lstAddresses.Items.Clear(); txtHost.Clear(); try { IPHostEntry ip_host_entry = Dns.GetHostEntry(txtHost.Text); foreach (IPAddress address in ip_host_entry.AddressList) { lstAddresses.Items.Add(address.ToString()); } } catch (Exception ex) { MessageBox.Show(ex.Message); } this.Cursor = Cursors.Default; }
Код очищает свой ListBox, а затем использует метод Dns.GetHostEntry для получения информации о хосте. Он перебирает коллекцию AddressList информации об объекте хоста IPAddress и добавляет IP-адреса в ListBox.
Когда вы выбираете запись в ListBox, следующий код отображает хост, назначенный для выбранного IP-адреса.
// Найдите хост выбранного IP-адреса. private void lstAddresses_SelectedIndexChanged( object sender, EventArgs e) { IPHostEntry ip_host_entry = Dns.GetHostEntry(lstAddresses.SelectedItem.ToString()); txtRecoveredHost.Text = ip_host_entry.HostName; }
Этот код использует метод Dns.GetHostEntry для получения информации об выбранном IP-адресе. Затем он отображает имя назначенного хоста.
Ранее эта программа вернула несколько IP-адресов для одного хоста. Например, loookup для maps.google.com может возвращать дюжину или более IP-адресов. Кажется, что текущая программа возвращает один адрес. Я подозреваю, что это изменение в Windows 10, но я не уверен. Если у вас есть дополнительная информация об этом, отправьте его в комментарии ниже.
Если вы посмотрите на хост localhost, программа перечисляет два специальных IP-адреса :: 1 и 127.0.0.1. Если вы нажмете любой из них в ListBox, программа отобразит имя вашего компьютера.