首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查网络状态

检查网络状态
EN

Stack Overflow用户
提问于 2009-09-19 01:20:55
回答 3查看 2.2K关注 0票数 2

如果网络关闭,我想检查网络状态,我的意思是,如果我的网络关闭了,我想通过使用C#/VB.net编程来找出,以找出哪个路由器或服务器等由于哪个网络也关闭了,

希望我已经解释了我的问题,如果你想要更多的解释,请告诉我。

我想检查网络连接中是否有路由器关闭或其他问题,因为有很多技术可以检查网络的正常运行或关闭,但由于网络上的哪台设备导致网络关闭,这就是我的问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-19 06:06:18

为什么不使用.Net networking类?

http://msdn.microsoft.com/en-us/library/system.net.networkinformation.aspx

票数 1
EN

Stack Overflow用户

发布于 2009-09-19 01:26:37

你可以使用pinvoke InternetGetConnectedState()。为标志传递0,如果返回true,则表示存在活动的internet连接。

票数 1
EN

Stack Overflow用户

发布于 2009-09-19 01:54:06

对于我的一些使用WCF的三层应用程序,我使用多步骤测试来检查我无法访问在线数据的原因。

首先,我们检查计算机是否被隔离(在Windows2008的发布会中看到了此功能)

代码语言:javascript
复制
ManagementScope scope = new ManagementScope(@"\root\nap");
scope.Connect();

ObjectQuery query = new ObjectQuery("SELECT * FROM NAP_Client");
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query))
{
    int isolationState = 0;
    foreach (ManagementObject m in searcher.Get())
    {
        isolationState = int.Parse(m["systemIsolationState"].ToString());
    }

    if (isolationState == 3) // 3 means in quarantine
    {
        //NAP is preventing the computer access to the network
        ....do something
    }
}

然后,我们使用此API继续测试是否可以访问互联网:

代码语言:javascript
复制
[DllImport("wininet.dll")]
private extern static bool InternetGetConnectedState(out ConnectedStateFlag lpdwFlags, int dwReserved);

[Flags]
private enum ConnectedStateFlag : int
{
    Configured = 0x40,
    LAN = 0x02,
    RasInstalled = 0x10,
    Modem = 0x01,
    ModemBusy = 0x08,
    Offline = 0x20,
    Proxy = 0x04
}

然后,我打开一个套接字并尝试连接到服务器地址。

然后,我尝试创建一个web服务实例,以查看IIS是否正常运行,并且没有导致任何错误。

然后,我在web服务上调用一个函数,该函数告诉我数据库是否在线。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1447426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档