我如何知道我的电脑是否未连接到网络?

我正在制作局域网聊天应用程序(服务器和客户端程序),我想知道如何获得自己计算机的IP地址(对于服务器程序)并找到了这个问题 。

我在我的程序中使用了代码并测试了它,而我的计算机没有连接到互联网,LAN或任何外部设备,我认为代码会因此而抛出exception(并且意味着我的计算机没有连接任何网络)…但它没有,而是返回了一个IP地址。

有没有办法找出我的电脑是否没有连接到任何网络?

您可以订阅System.Net.NetworkInformation.NetworkChange.NetworkAvailabilityChanged事件,然后评估NetworkAvailabilityEventArgs.IsAvailable属性。

或者,您可以调用System.Net.NetworkInformation.GetIsNetworkAvailable()方法。

使用System.Net.NetworkInformation,您可以收集有关网络接口的信息。 所以这应该对你有所帮助:

public Boolean isConnected() { NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface face in interfaces) { if (face.OperationalStatus == OperationalStatus.Up || face.OperationalStatus == OperationalStatus.Unknown) { // Internal network interfaces from VM adapters can still be connected IPv4InterfaceStatistics statistics = face.GetIPv4Statistics(); if (statistics.BytesReceived > 0 && statistics.BytesSent > 0) { // A network interface is up return true; } } } // No Interfaces are up return false; } 

唯一的方法来检查你是否在任何特定的时间点连接到网络是检查你的网关是否可以在那个时间点到达,例如ping所有网关的地址,如果至少有一个响应,那么你是真正连接:如果他们都没有响应,那么你的电缆仍然可以连接,但不能说你已连接到网络了!

希望这可以帮助! cforfun!