怎样使用C# 获取WIFI的连接状态?

行文导航

  1. 思路

  2. 问题得到解决

  3. 代码展示

  4. 断开与连接WIFI状态效果

  5. 在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的连接状态?相关推荐

  1. iOS获取当前网络连接状态WiFi、5G、4G、3G、2G

    iOS获取网络连接状态 通过AFNetworking获取的网络状态只有未知.无网络连接.手机自带网络.WIFI,需求是需要准确的定位到是WiFi.5G.4G.3G.2G,所以AFNetworking并 ...

  2. android设备获取wifi和蓝牙状态并进行打开或关闭操作

    wifi 获取系统wifi服务: WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Co ...

  3. android 监听wifi的连接状态,Android判断wifi状态 监听wifi连接

    一.添加权限 二.注册监听广播 注册监听有两种方式 1.AndroidMainfest.xml 中注册 2.在代码中注册 IntentFilter filter = new IntentFilter( ...

  4. kotlin_08:wlan直连/wifi_p2p的页面跳转以及实时获取连接状态

    前言之前一段时间一直加班,淦.五一,有点时间,简单的陈述一下,wlan直连页面的跳转和状态获取以及监听. 1. 先看效果 2. 布局文件 2.1 wifi_p2p_actvity_main.xml & ...

  5. 【Android 电量优化】电量优化 ( 网络状态获取 | 主动获取 WIFI 状态 | 被动获取 WIFI 状态 )

    文章目录 一.获取 WIFI 状态 二.主动获取 WIFI 状态 三.被动获取 WIFI 状态 参考 Google 官方文档 : 优化电池续航时间 一.获取 WIFI 状态 在应用中执行某些操作 , ...

  6. android获取wifi别名,android-连接WIFI时获取SSID

    android-连接WIFI时获取SSID 当我的android设备连接到WIFI时,我试图获取WIFI网络的SSID. 我已经注册了一个BroadcastReceiver,用于监听wifiInfo. ...

  7. Android系统信息获取 之十四:获取WIFI热点相关信息

    当在Android设备终端上使用Wifi热点的时候,需要获知Wifi热点的运行状态,热点是否打开,连接到该WIFI热点的设备数量,以及连接设备的具体IP和MAC地址. 使用re文件管理器去" ...

  8. android检测蓝牙设备连接不上,Android检查设备连接状态

    遇到一个检查蓝牙设备连接状态问题,困扰许久.在网上查询良久,尝试了多种方案,也没有很好的解决,最终经"高人指点",小有所获,在此小记. 网上查询的主要方法为以下两种: 1.getP ...

  9. 蓝牙配对-扫描-连接-状态查询

    蓝牙通讯的主要操作路线 创建蓝牙适配器对象-扫描周围蓝牙设备-配对-连接完成之后通过蓝牙适配器对象通信 下一篇讲解 文章中有获取当前蓝牙设备链接状态的方法 低版本可能会出现配对没有连接成功的情况 可根 ...

最新文章

  1. SQL 利用merge 同步数据库之间表的数据
  2. Makefile_04:Makefile变量初了解
  3. mysql数据库没启动命令_mysql数据库服务启动和停止命令介绍(转载)
  4. JS 如何截取部分日期呢
  5. 中国首部智能交通微纪录片正式发布 探讨交通强国高质量发展路径
  6. STM32----ADC多通道采集
  7. python 组合数据_python-组合数据类
  8. rgb颜色查询工具_认识色彩的三要素 理解颜色的此消彼长 合理使用工具改变照片色彩...
  9. 顺着IP地址他们能找到我家吗?
  10. 大型互联网产品的全链路压测
  11. ps2019布尔运算快捷键_ps你必须要知道的布尔运算
  12. 【转】MT7688学习笔记(6)——OpenWrt下串口编程
  13. Grafana画图表教程
  14. STC15单片机 线性按键控制LED流水灯位移
  15. C Primer Plus 第7章之菜鸟儿的编程题答案
  16. Java安卓适配全面屏_Android APP全面屏适配技术要点
  17. 【STM32H7】第3章 ThreadX FileX移植SDIO接口SD的基础知识
  18. 智慧公寓管理系统解决方案
  19. safari 扩展_为什么构建Safari应用扩展程序是2020年的噩梦
  20. java过滤器敏感字的拦截_【JavaWeb】94:如何屏蔽敏感词?

热门文章

  1. 关于 someone could be eavesdropping on you right now (man-in-the-middle attack) ssh的解决办法
  2. Permutations CodeForces - 736D (矩阵逆)
  3. POJ 1986 Distance Queries(LCA)
  4. Tabcontrol动态添加TabPage(获取或设置当前选项卡及其属性)
  5. 一台服务部署多个tomcat注意事项
  6. day10 多媒体(文字 图片 音频 视频)
  7. 基于visual Studio2013解决C语言竞赛题之0710排序函数
  8. 导入shape文件到SDE数据库
  9. 遭遇“烧钱瓶颈” 优酷成本结构堪忧
  10. 首次公开!单日600PB的计算力--阿里巴巴EB级大数据平台的进击