C#判斷聯(lián)網(wǎng)狀態(tài)
方法一:使用InternetGetConnectedState方法
不推薦使用該API。

方法體(C++):BOOLAPI InternetGetConnectedState( LPDWORD lpdwFlags, DWORD dwReserved );
參數(shù)說(shuō)明:
lpdwFlags:指向接收連接描述的變量的指針。即使函數(shù)返回FALSE,此參數(shù)也可能返回有效標(biāo)志。此參數(shù)可以是以下一個(gè)或多個(gè)值。
| 值 | 含義 |
|---|---|
|
本地系統(tǒng)具有到Internet的有效連接,但當(dāng)前可能連接或可能未連接。 |
|
本地系統(tǒng)使用局域網(wǎng)連接到Internet。 |
|
本地系統(tǒng)使用調(diào)制解調(diào)器連接到Internet。 |
|
不再使用。 |
|
本地系統(tǒng)處于離線模式。 |
|
本地系統(tǒng)使用代理服務(wù)器連接到Internet。 |
|
本地系統(tǒng)已安裝RAS。 |
dwReserved:該參數(shù)是保留參數(shù),必須為0。
返回值:如果存在活動(dòng)的調(diào)制解調(diào)器或LAN Internet連接,則返回TRUE;如果沒(méi)有Internet連接,或者當(dāng)前所有可能的Internet連接都不處于活動(dòng)狀態(tài),則返回FALSE。
代碼示例:
1 public static class Internet 2 { 3 [DllImport("winInet.dll")] 4 private static extern bool InternetGetConnectedState(ref int dwFlag, int dwReserved); 5 6 /// <summary> 7 /// 返回網(wǎng)絡(luò)狀態(tài) 8 /// </summary> 9 public static bool Status 10 { 11 get 12 { 13 Int32 dwFlag = new int(); 14 if (!InternetGetConnectedState(ref dwFlag, 0)) 15 { 16 return false; 17 } 18 else 19 { 20 return true; 21 } 22 } 23 } 24 }
方法二:使用nuget安裝 WindowsAPICodePack-Core 包,代碼示例如下:
1 public class NetworkHelper 2 { 3 /// <summary> 4 /// 判斷是否聯(lián)網(wǎng) 5 /// </summary> 6 /// <param name="networkName">網(wǎng)絡(luò)名稱</param> 7 /// <returns></returns> 8 public static bool IsConnectNetwork(string networkName) 9 { 10 bool isConnection = false; 11 NetworkCollection nCollection = NetworkListManager.GetNetworks(NetworkConnectivityLevels.All); 12 if (nCollection != null && nCollection.Count() > 0) 13 { 14 if (string.IsNullOrEmpty(networkName)) 15 { 16 isConnection = nCollection.Any(t => t.IsConnected); 17 } 18 else 19 { 20 isConnection = nCollection.Any(t => t.IsConnected && t.Name.Equals(networkName, StringComparison.InvariantCultureIgnoreCase)); 21 } 22 isConnection = string.IsNullOrEmpty(networkName) ? nCollection.Any(t => t.IsConnected) : 23 nCollection.Any(t => t.IsConnected && t.Name.Equals(networkName, StringComparison.InvariantCultureIgnoreCase)); 24 } 25 return isConnection; 26 } 27 }
posted on 2020-03-25 17:30 jxli 閱讀(868) 評(píng)論(0) 收藏 舉報(bào)
浙公網(wǎng)安備 33010602011771號(hào)