C# 如何检测物理防火墙、路由器和交换机是否正常工作

C# 如何检测物理防火墙、路由器和交换机是否正常工作,c#,networking,network-programming,windows-applications,C#,Networking,Network Programming,Windows Applications,我正在尝试开发一个网络监控windows应用程序。有没有办法检测物理防火墙、路由器和交换机是否正常运行,是否关闭或不工作?我还需要从连接到局域网的客户机系统中检测到这一点 我想对于交换机,ping到它的IP地址是必要的 对于ping开关,这是我的代码 void PingSwitch() { var ping = new Ping(); if (!string.IsNullOrEmpty(this.IPV4Address)) { PingReply pin

我正在尝试开发一个网络监控windows应用程序。有没有办法检测物理防火墙、路由器和交换机是否正常运行,是否关闭或不工作?我还需要从连接到局域网的客户机系统中检测到这一点

我想对于交换机,ping到它的IP地址是必要的

对于ping开关,这是我的代码

void PingSwitch()
{
    var ping = new Ping();

    if (!string.IsNullOrEmpty(this.IPV4Address))
    {
        PingReply pingReply = ping.Send(this.IPV4Address);

        if (pingReply.Status == IPStatus.Success)
            this.Background = Brushes.Green;
        else
            this.Background = Brushes.Red;
    }
}

如何使用路由器和防火墙

对于那些感兴趣的人,我将发布我得到的解决方案


正如@Default建议的那样,我使用nmap,从c对交换机和路由器进行隐形扫描,并在这篇文章中检测防火墙。

@rhughes请检查更新的问题。如果它们是“托管”的,那么它们应该有一个您应该能够使用的协议/API,我认为没有通用的协议/API。但我不知道你说的“工作很好”是什么意思?你的意思是你想要一个应用程序,它可以在每个端口上打开通信,并试图到达防火墙后面的某个位置?@cjb110“正常工作”表示设备运行正常,没有关闭或不工作。请注意,路由器和交换机可能已关闭ping,也就是说,它们不响应ICMP包。你可以检查一下nmap是如何实现的。这对于你所说的工具包类型来说是相当模糊的。但是一个解决方案是您需要一个客户机/服务器组合。服务器部分位于防火墙/路由器/交换机的一侧,客户端位于另一侧。如果你在两者之间打开一个通讯,你就知道交换机和路由器在工作,通过改变通讯端口,你可以检查防火墙。但实际上,您需要查看设备本身,看看它们是否具有任何类型的管理功能。