行文导航
- 思路
- 问题得到解决
- 代码展示
- 断开与连接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(); var nface = nfaces.First(x => x.Name == "WLAN 2"); if (nface == null) { MessageBox.Show("WLAN2 - Wifi未连接."); return; } var ipProperties = nface.GetIPProperties(); // 获取默认网关 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状态效果


5.在OrangePI Linux Arm32上的测试效果
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.dll Build 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#
一些推荐
- 【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

原文出处:微信公众号【非法关键字 Dotnet9】
原文链接:https://mp.weixin.qq.com/s/-S7RlXw9dbZ9r16-iLHUxA
本文观点不代表Dotnet9立场,转载请联系原作者。