Я пинговаю хосты из списка строк (адресов). Все работает отлично, но когда хост недостижимый ping возвращает Result.Address
: «0.0.0.0» вместо существующего адреса или имени хоста, которое я передал в функцию SendPingAsync. Вот мой код:Извлечение имени хоста ping из результата SendPingAsync
var pingTasks = addresses.Select(address =>
{
return new Ping().SendPingAsync(address);
});
await Task.WhenAll(pingTasks);
StringBuilder pingResultBuilder = new StringBuilder();
foreach (var pingReply in pingTasks)
{
pingResultBuilder.Append(pingReply.Result.Address);
pingResultBuilder.Append(" ");
pingResultBuilder.Append(pingReply.Result.Status);
pingResultBuilder.Append(" ");
pingResultBuilder.Append(pingReply.Result.RoundtripTime.ToString());
pingResultBuilder.AppendLine();
}
Console.WriteLine(pingResultBuilder.ToString());
Я нашел решение here, но мне нужно сделать то же самое в SendPingAsync
функции вместо SendAsync
. Как я могу получить пройденный host name/ip address
от pingReply.Result
?
вы должны сделать DNS поиск на что-то, что не отвечает. –
Мое приложение должно быть ориентировано на производительность, и я бы не хотел включать лишние операции. Если мне это не нужно, но если есть способ получить этот IP-адрес, я бы хотел его использовать. –