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

admin 2022年6月8日06:51:13安全开发评论6 views2204字阅读7分20秒阅读模式

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

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

怎样使用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状态效果

怎样使用C# 获取WIFI的连接状态?
未连接状态
怎样使用C# 获取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
[email protected]:~/OrangePICallbox/WifiConnection# dotnet run
wlan0 - Wifi已连接. [Ping 192.168.31.1 Status: Success]
[email protected]:~/OrangePICallbox/WifiConnection#

一些推荐

  1. 【Blazor 开源控件库】点击浏览

  2. 【B/S 开源项目】点击浏览

  3. 【WPF 开源控件库】点击浏览

  4. 【WPF 开源项目】点击浏览

  5. 【Xamarin 开源项目】点击浏览

  6. 【Winform 开源控件库】点击浏览

  7. 【Winform 开源项目】点击浏览

  8. 【Qt 开源控件库】点击浏览

  9. 【Qt 开源项目】点击浏览

  10. 【更多分享】点击浏览


资源分享

  • 回复数字【01】:获取DotNet技术资料
  • 回复数字【02】:获取Java技术资料
  • 回复数字【03】:获取Android技术资料
  • 回复数字【04】:获取C++技术资料
  • 回复数字【05】:获取Qt技术资料
  • 回复数字【06】:获取React资源
  • 添加号主微信号【dotnet9】:备注【入群】加入与大佬们的技术交流
  • 添加QQ群【771992300】:备注【Dotnet9】加入技术交流,无人数上限、有资源共享

时间如流水,只能流去不流回。

  • 公众号:Dotnet9
  • 号主微信号:dotnet9
  • 作者:非法关键字
  • 原文:C#获取WIFI的连接状态
  • 编辑:沙漠之尽头的狼
  • 日期:2020-12-25
怎样使用C# 获取WIFI的连接状态?
微信公众号:Dotnet9


原文始发于微信公众号(哆啦安全):怎样使用C# 获取WIFI的连接状态?

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月8日06:51:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  怎样使用C# 获取WIFI的连接状态? http://cn-sec.com/archives/787205.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: