如果网络关闭,我想检查网络状态,我的意思是,如果我的网络关闭了,我想通过使用C#/VB.net编程来找出,以找出哪个路由器或服务器等由于哪个网络也关闭了,
希望我已经解释了我的问题,如果你想要更多的解释,请告诉我。
我想检查网络连接中是否有路由器关闭或其他问题,因为有很多技术可以检查网络的正常运行或关闭,但由于网络上的哪台设备导致网络关闭,这就是我的问题。
发布于 2009-09-19 06:06:18
为什么不使用.Net networking类?
http://msdn.microsoft.com/en-us/library/system.net.networkinformation.aspx
发布于 2009-09-19 01:26:37
你可以使用pinvoke InternetGetConnectedState()。为标志传递0,如果返回true,则表示存在活动的internet连接。
发布于 2009-09-19 01:54:06
对于我的一些使用WCF的三层应用程序,我使用多步骤测试来检查我无法访问在线数据的原因。
首先,我们检查计算机是否被隔离(在Windows2008的发布会中看到了此功能)
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继续测试是否可以访问互联网:
[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服务上调用一个函数,该函数告诉我数据库是否在线。
https://stackoverflow.com/questions/1447426
复制相似问题