在MVC5的列表中显示Ping状态

时间:2019-04-24 07:41:12

标签: asp.net asp.net-mvc-5 ping

我正在使用Asp.net mvc5,我的表中包含“ id”和“ server_IP”之类的字段,其中填充了n个服务器ip。并希望根据ping显示每个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成功

注意 阿鲁·萨哈尼(ARUN SAHANI)

1 个答案:

答案 0 :(得分:0)

不确定我是否正确理解了您的问题,但是根据您正在寻找的输出类型以及初始化viewstate的方式,我认为您应该在将ip和状态传递给viewstate的同时将其连接起来。 / p>

类似这样的东西:

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;