C # Как бы я перечислил IP-адреса сетевых компьютеров в списке? - PullRequest
2 голосов
/ 28 ноября 2011

Подключение к другому компьютеру через сокеты (что я несколько преуспел в этом, поймите меня) включает ввод IP-адреса хост-компьютера, который мой профессор посчитал «не удобным для пользователя».

Моя предыдущая программаиспользование сервера, который больше не нужен из-за соединения с сокетом.Код, который я использовал тогда, заключался в том, чтобы перечислить имена сетей, что очень понравилось моему профессору.

NetworkBrowser nb = new NetworkBrowser();
foreach (string pc in nb.getNetworkComputers())
{
   lstNet.Items.Add(pc);
}

Можно ли, скажем, использовать этот код и заставить программу получить IP-адрес(IPv4, если возможно), когда пользователь выбирает имя компьютера в сети?Это будет сделано до того, как будет установлено какое-либо сокетное соединение.

Или, если это не удастся / невозможно, как мне перечислить IP-адреса компьютеров в списке?Я действительно не знаю, как реализовать ARPing, о котором я постоянно слышу.

К сожалению, в моей школе работает только .NET 2.0, поэтому я боюсь, что мой единственный вариант - это C # Windows Forms, а не WCF иличто угодно.

Большое спасибо всем и всем, кто ответит.

1 Ответ

4 голосов
/ 28 ноября 2011

Вы можете выполнить DNS-запрос для получения IP-адреса:

IPAddress[] addresslist = Dns.GetHostAddresses(pc);
foreach (IPAddress address in addresslist)
{
   Console.WriteLine(address.ToString());
}

Вам нужно будет включить System.Net (доступно в .NET 2.0)

...