連線狀態_怎樣使用C# 獲取WIFI的連線狀態?
阿新 • • 發佈:2021-01-23
技術標籤:連線狀態
怎樣使用C# 獲取WIFI的連線狀態?
行文導航
- 思路
- 問題得到解決
- 程式碼展示
- 斷開與連線WIFI狀態效果
- 在OrangePI Linux Arm32上的測試效果
C# 獲取WIFI的連線狀態
本文是在知道WIFI網路裝置名稱的情況下,獲取該裝置的連線狀態,同樣也是可以判斷是否已連線廣域網。
1. 思路
起初是想著有沒有那樣一個直接訪問裝置資訊,通過這個返回的資訊來得到我想要的狀態,查了一個資料在Linux上有個libiw
,這個包能掃描到的ssid
的相關資訊,並不是我想要的。
那麼只能從另外一個方式入手,首先取得裝置的Gateway
資訊,然後Ping
這個Gateway.IPAddress
Ping
的結果,從這個結果來判斷是否連線是否成功。
2.問題得到解決
通過思路2,查詢相關的C#方面的資料,果然有相關的API, 通過NetworkInterface這個類來得到所有的網路裝置資訊,然後再根據條件找出我關注的網路裝置,再通過Ping這個類SendPingAsync取得Ping的結果,最後由結果來判別連線狀態。
3.程式碼展示
NetworkInterface[]nfaces=NetworkInterface.GetAllNetworkInterfaces();
varnface=nfaces.First(x=>x.Name=="WLAN2");
if(nface==null)
{
MessageBox.Show("WLAN2-Wifi未連線.");
return;
}
varipProperties=nface.GetIPProperties();
//獲取預設閘道器
vardefualtGateway=ipProperties.GatewayAddresses[0];
Pingping=newPing();
vartreplay=ping.SendPingAsync(defualtGateway.Address);
varreplay=treplay.Result;
MessageBox.Show(replay?.Status==IPStatus.Success
?$"WLAN2-Wifi已連線.[Ping{defualtGateway.Address}Status:{replay?.Status}]"
:$"WLAN2-Wifi未連線.[Ping{defualtGateway.Address}Status:{replay?.Status}]");
4.斷開與連線WIFI狀態效果
5.在OrangePI Linux Arm32上的測試效果
Microsoft(R)BuildEngineversion16.7.1+52cd83677for.NETCopyright(C)MicrosoftCorporation.Allrightsreserved.
Determiningprojectstorestore...
Restored/root/OrangePICallbox/WifiConnection/WifiConnection.csproj(in1.29sec).
WifiConnection->/root/OrangePICallbox/WifiConnection/bin/Debug/netcoreapp3.1/WifiConnection.dll
Buildsucceeded.
0Warning(s)
0Error(s)
TimeElapsed00:00:18.64
[email protected]:~/OrangePICallbox/WifiConnection#dotnetrun
wlan0-Wifi已連線.[Ping192.168.31.1Status:Success]
[email protected]:~/OrangePICallbox/WifiConnection#
一些推薦
【Blazor 開源控制元件庫】點選瀏覽
【B/S 開源專案】點選瀏覽
【WPF 開源控制元件庫】點選瀏覽
【WPF 開源專案】點選瀏覽
【Xamarin 開源專案】點選瀏覽
【Winform 開源控制元件庫】點選瀏覽
【Winform 開源專案】點選瀏覽
【Qt 開源控制元件庫】點選瀏覽
【Qt 開源專案】點選瀏覽
【更多分享】點選瀏覽
資源分享
- 回覆數字【01】:獲取DotNet技術資料
- 回覆數字【02】:獲取Java技術資料
- 回覆數字【03】:獲取Android技術資料
- 回覆數字【04】:獲取C++技術資料
- 回覆數字【05】:獲取Qt技術資料
- 回覆數字【06】:獲取React資源
- 新增號主微訊號【dotnet9】:備註【入群】加入與大佬們的技術交流
- 新增QQ群【771992300】:備註【Dotnet9】加入技術交流,無人數上限、有資源共享
❝時間如流水,只能流去不流回。
- 公眾號:Dotnet9
- 號主微訊號:dotnet9
- 作者:非法關鍵字
- 原文:C#獲取WIFI的連線狀態
- 編輯:沙漠之盡頭的狼
- 日期:2020-12-25