Показать Ping Status в списке в MVC5 - PullRequest
0 голосов
/ 24 апреля 2019

Я использую Asp.net mvc5, у меня есть таблица с полями типа «id» и «server_IP», заполненная n-номерами ip сервера. И хочет отобразить состояние каждого IP-адреса «успех» или «тайм-аут» в зависимости от пинга.

Я использовал следующее;

Ping myPing = new Ping();
PingReply reply = myPing.Send("8.8.8.8", 1000);
if (reply != null)
{
ViewData["ip_stat"] = reply.Status;
} 

Я не мог использовать это в моем списке просмотра, чтобы состояние каждого сервера могло отображаться как

Состояние сервера 8.8.8.8 Успех Тайм-аут 192.168.10.10 192.168.100.1 успех

REGARDS АРУН САХАНИ

1 Ответ

0 голосов
/ 24 апреля 2019

Не уверен, правильно ли я понял ваш вопрос, но исходя из того, какой вывод вы ищете, и как инициализируется состояние представления, я думаю, вам следует объединить ip и статус при передаче его в представление состояния.

Примерно так:

ViewData["ip_stat"] = reply.Address + " " + reply.Status;

Надеюсь, это поможет.

Отредактировано для случая, когда адреса выбираются из некоторой таблицы и должны быть переданы в viewstate

// suppose this variable has the list of IP addresses from the table
var addresses = new List<string> {"8.8.8.8", "192.168.10.10", "192.168.10.8"}

var ipStatusDict = new Dictionary<string, string>();

//iterate over the list, fetch the status for each ip and add it within the dictionary
foreach(var ip in addresses)
{
    var reply = new Ping().Send(ip, 1000);
    if (reply != null)
    {
        ipStatusDict.Add(reply.Address, reply.Status);
    } 
}

ViewData["ip_stat"] = ipStatusDict;

...