[英]How do I know if my computer's not connected to a network?
我正在制作一個LAN聊天應用程序(服務器和客戶端程序),我想知道如何獲取自己計算機的IP地址(用於服務器程序)並找到了這個問題 。
我在程序中使用了代碼,並在計算機未連接到Internet,LAN或任何外部設備的情況下對其進行了測試,因此我認為該代碼將引發異常(這意味着計算機未與任何網絡連接) )...,但沒有,而是返回了IP地址。
有沒有辦法確定我的計算機是否未連接到任何網絡?
使用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!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.