怎样使用C# 获取WIFI的连接状态?
怎样使用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();
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.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#
怎样使用C# 获取WIFI的连接状态?相关推荐
- iOS获取当前网络连接状态WiFi、5G、4G、3G、2G
iOS获取网络连接状态 通过AFNetworking获取的网络状态只有未知.无网络连接.手机自带网络.WIFI,需求是需要准确的定位到是WiFi.5G.4G.3G.2G,所以AFNetworking并 ...
- android设备获取wifi和蓝牙状态并进行打开或关闭操作
wifi 获取系统wifi服务: WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Co ...
- android 监听wifi的连接状态,Android判断wifi状态 监听wifi连接
一.添加权限 二.注册监听广播 注册监听有两种方式 1.AndroidMainfest.xml 中注册 2.在代码中注册 IntentFilter filter = new IntentFilter( ...
- kotlin_08:wlan直连/wifi_p2p的页面跳转以及实时获取连接状态
前言之前一段时间一直加班,淦.五一,有点时间,简单的陈述一下,wlan直连页面的跳转和状态获取以及监听. 1. 先看效果 2. 布局文件 2.1 wifi_p2p_actvity_main.xml & ...
- 【Android 电量优化】电量优化 ( 网络状态获取 | 主动获取 WIFI 状态 | 被动获取 WIFI 状态 )
文章目录 一.获取 WIFI 状态 二.主动获取 WIFI 状态 三.被动获取 WIFI 状态 参考 Google 官方文档 : 优化电池续航时间 一.获取 WIFI 状态 在应用中执行某些操作 , ...
- android获取wifi别名,android-连接WIFI时获取SSID
android-连接WIFI时获取SSID 当我的android设备连接到WIFI时,我试图获取WIFI网络的SSID. 我已经注册了一个BroadcastReceiver,用于监听wifiInfo. ...
- Android系统信息获取 之十四:获取WIFI热点相关信息
当在Android设备终端上使用Wifi热点的时候,需要获知Wifi热点的运行状态,热点是否打开,连接到该WIFI热点的设备数量,以及连接设备的具体IP和MAC地址. 使用re文件管理器去" ...
- android检测蓝牙设备连接不上,Android检查设备连接状态
遇到一个检查蓝牙设备连接状态问题,困扰许久.在网上查询良久,尝试了多种方案,也没有很好的解决,最终经"高人指点",小有所获,在此小记. 网上查询的主要方法为以下两种: 1.getP ...
- 蓝牙配对-扫描-连接-状态查询
蓝牙通讯的主要操作路线 创建蓝牙适配器对象-扫描周围蓝牙设备-配对-连接完成之后通过蓝牙适配器对象通信 下一篇讲解 文章中有获取当前蓝牙设备链接状态的方法 低版本可能会出现配对没有连接成功的情况 可根 ...
最新文章
- SQL 利用merge 同步数据库之间表的数据
- Makefile_04:Makefile变量初了解
- mysql数据库没启动命令_mysql数据库服务启动和停止命令介绍(转载)
- JS 如何截取部分日期呢
- 中国首部智能交通微纪录片正式发布 探讨交通强国高质量发展路径
- STM32----ADC多通道采集
- python 组合数据_python-组合数据类
- rgb颜色查询工具_认识色彩的三要素 理解颜色的此消彼长 合理使用工具改变照片色彩...
- 顺着IP地址他们能找到我家吗?
- 大型互联网产品的全链路压测
- ps2019布尔运算快捷键_ps你必须要知道的布尔运算
- 【转】MT7688学习笔记(6)——OpenWrt下串口编程
- Grafana画图表教程
- STC15单片机 线性按键控制LED流水灯位移
- C Primer Plus 第7章之菜鸟儿的编程题答案
- Java安卓适配全面屏_Android APP全面屏适配技术要点
- 【STM32H7】第3章 ThreadX FileX移植SDIO接口SD的基础知识
- 智慧公寓管理系统解决方案
- safari 扩展_为什么构建Safari应用扩展程序是2020年的噩梦
- java过滤器敏感字的拦截_【JavaWeb】94:如何屏蔽敏感词?
热门文章
- 关于 someone could be eavesdropping on you right now (man-in-the-middle attack) ssh的解决办法
- Permutations CodeForces - 736D (矩阵逆)
- POJ 1986 Distance Queries(LCA)
- Tabcontrol动态添加TabPage(获取或设置当前选项卡及其属性)
- 一台服务部署多个tomcat注意事项
- day10 多媒体(文字 图片 音频 视频)
- 基于visual Studio2013解决C语言竞赛题之0710排序函数
- 导入shape文件到SDE数据库
- 遭遇“烧钱瓶颈” 优酷成本结构堪忧
- 首次公开!单日600PB的计算力--阿里巴巴EB级大数据平台的进击