怎样使用C# 获取WIFI的连接状态?
怎樣使用C# 獲取WIFI的連接狀態(tài)?
行文導(dǎo)航
思路
問題得到解決
代碼展示
斷開與連接WIFI狀態(tài)效果
在OrangePI Linux Arm32上的測(cè)試效果
C# 獲取WIFI的連接狀態(tài)
本文是在知道WIFI網(wǎng)絡(luò)設(shè)備名稱的情況下,獲取該設(shè)備的連接狀態(tài),同樣也是可以判斷是否已連接廣域網(wǎng)。
1. 思路
起初是想著有沒有那樣一個(gè)直接訪問設(shè)備信息,通過這個(gè)返回的信息來(lái)得到我想要的狀態(tài),查了一個(gè)資料在Linux上有個(gè)libiw,這個(gè)包能掃描到的ssid的相關(guān)信息,并不是我想要的。
那么只能從另外一個(gè)方式入手,首先取得設(shè)備的Gateway信息,然后Ping這個(gè)Gateway.IPAddress會(huì)得到Ping的結(jié)果,從這個(gè)結(jié)果來(lái)判斷是否連接是否成功。
2.問題得到解決
通過思路2,查找相關(guān)的C#方面的資料,果然有相關(guān)的API, 通過NetworkInterface這個(gè)類來(lái)得到所有的網(wǎng)絡(luò)設(shè)備信息,然后再根據(jù)條件找出我關(guān)注的網(wǎng)絡(luò)設(shè)備,再通過Ping這個(gè)類SendPingAsync取得Ping的結(jié)果,最后由結(jié)果來(lái)判別連接狀態(tài)。
3.代碼展示
NetworkInterface[]?nfaces?=?NetworkInterface.GetAllNetworkInterfaces(); var?nface?=?nfaces.First(x?=>?x.Name?==?"WLAN?2"); if?(nface?==?null) {MessageBox.Show("WLAN2?-?Wifi未連接.");return; } var?ipProperties?=?nface.GetIPProperties(); //?獲取默認(rèn)網(wǎng)關(guān) var?defualtGateway?=?ipProperties.GatewayAddresses[0]; Ping?ping?=?new?Ping(); var?treplay?=?ping.SendPingAsync(defualtGateway.Address); var?replay?=?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狀態(tài)效果
未連接狀態(tài)已連接狀態(tài)5.在OrangePI Linux Arm32上的測(cè)試效果
Microsoft?(R)?Build?Engine?version?16.7.1+52cd83677?for?.NET Copyright?(C)?Microsoft?Corporation.?All?rights?reserved.Determining?projects?to?restore...Restored?/root/OrangePICallbox/WifiConnection/WifiConnection.csproj?(in?1.29?sec).WifiConnection?->?/root/OrangePICallbox/WifiConnection/bin/Debug/netcoreapp3.1/WifiConnection.dllBuild?succeeded.0?Warning(s)0?Error(s)Time?Elapsed?00:00:18.64 root@orangepipcplus:~/OrangePICallbox/WifiConnection#?dotnet?run wlan0?-?Wifi已連接.?[Ping?192.168.31.1?Status:?Success] root@orangepipcplus:~/OrangePICallbox/WifiConnection#總結(jié)
以上是生活随笔為你收集整理的怎样使用C# 获取WIFI的连接状态?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生态和能力是国内自研操作系统发展的关键
- 下一篇: 如何在 ASP.NET Core 中使用