#c# #asp.net #network-programming #ip-address #hostname
#c# #asp.net #сетевое программирование #ip-адрес #hostname
Вопрос:
Я пытаюсь перебрать все IP-адреса в пределах диапазона (192.168.1.1 — 192.168.1.255) и распечатать IP-адрес, содержащий X hostname.
Я пытаюсь использовать этот код, но он дает мне только последний IP-адрес, который содержит X имя хоста, но есть несколько IP-адресов с этим именем хоста:
string customPc = "myCustomPc";
IPHostEntry host = Dns.GetHostEntry(customPc);
foreach (IPAddress theaddress in host.AddressList)
{
Console.WriteLine(theaddress.ToString());
}
кроме того, я пытаюсь сделать это таким образом, но он выводит тот же результат — последний IP-адрес с этим именем хоста:
string host = "myCustomPc";
IPHostEntry hostEntry;
hostEntry = Dns.GetHostEntry(host);
if (hostEntry.AddressList.Length > 0)
{
var ip = hostEntry.AddressList[0];
Console.WriteLine(ip ": Your custom PC is found!");
}`
Ответ №1:
Проблема в том, что вы печатаете только один элемент из коллекции AddressList?
Попробуйте это:
foreach(var a in hostEntry.AddressList) {
Console.WriteLine(a ": Your custom PC is found!");
}
или используйте метод Dns.GetHostAddresses(String)
foreach(var a in Dns.GetHostAddresses(host)) {
Console.WriteLine(a);
}
как я могу выполнить цикл с 192.168.1.1 до 192.168.1.255
Вот один из способов
for(int d = 1; d <=255; d )
{
var ipstr = $"192.161.1.{d}";
}
Комментарии:
1. Я попробовал, он дает мне только один IP-адрес, но в моей локальной сети около 7-10 компьютеров с тем же именем хоста