2019-9-30-dotnet-枚举当前设备wifi热点
| title | author | date | CreateTime | categories |
|---|---|---|---|---|
|
dotnet 枚举当前设备wifi热点
|
lindexi
|
2019-09-30 14:42:18 +0800
|
2019-9-30 14:19:6 +0800
|
dotnet
|
在 dotnet 程序没有现有的方法可以列举当前设备的无线网卡找到的 WIFI 热点,需要写一点代码才能使用
最简单的方法是通过命令行的方法,在命令行输入下面代码可以显示计算机上可见的网络列表
netsh wlan show networks
在我设备上运行可以找到我附近的 WIFI 热点
SSID 1 : Lindexi
Network type : 结构
身份验证 : WPA2 - 个人
加密 : CCMP SSID 2 : Lvyi
Network type : 结构
身份验证 : WPA2 - 个人
加密 : CCMP SSID 3 : 职业技术学院
Network type : 结构
身份验证 : 开放式
加密 : 无
也就是通过命令行方式调用,然后解析命令行就可以列举设备能连接的 WIFI 热点
另一个方法是通过本机代码
从网上找到调用 wlanapi.dll 的方法,调用了方法可以拿到当前设备能访问的 WIFI 列表
这里的代码都是调用 win32 方法,我将代码放在 github 请复制 WlanApi.cs 和 Interop.cs 到你的项目,然后使用下面代码就可以显示当前能连接的网络
static void Main(string[] args)
{
WlanClient client = new WlanClient();
foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
{
// Lists all networks with WEP security
Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList(0); if (networks.Length > 0)
{
Console.WriteLine($"找到{networks.Length}热点");
foreach (Wlan.WlanAvailableNetwork network in networks)
{
Console.WriteLine($"WIFI {GetStringForSSID(network.dot11Ssid)}.");
} Console.WriteLine();
}
}
} /// <summary>
/// Converts a 802.11 SSID to a string.
/// </summary>
private static string GetStringForSSID(Wlan.Dot11Ssid ssid)
{
return Encoding.UTF8.GetString(ssid.SSID, 0, (int) ssid.SSIDLength);
}
当然,复制代码的方法是很逗比的,早就有大佬做出了 NuGet 库,请安装 SimpleWifi 这个库,然后使用下面代码就可以输出
static void Main(string[] args)
{
var wlanClient = new WlanClient();
foreach (var wlanClientInterface in wlanClient.Interfaces)
{
foreach (var wlanAvailableNetwork in wlanClientInterface.GetAvailableNetworkList(WlanGetAvailableNetworkFlags.IncludeAllAdhocProfiles))
{
Console.WriteLine($"WIFI {GetStringForSSID(wlanAvailableNetwork.dot11Ssid)}.");
}
}
} /// <summary>
/// Converts a 802.11 SSID to a string.
/// </summary>
private static string GetStringForSSID(Dot11Ssid ssid)
{
return Encoding.UTF8.GetString(ssid.SSID, 0, (int) ssid.SSIDLength);
}
使用库的代码也放在 github 欢迎小伙伴下载
是不是看的代码和复制大佬写的代码的差不多,其实这个库的代码基本和刚才复制代码的一样,如果想要使用刚才复制代码的库,可以安装 managedwifi 库,此时的显示可以访问的周围的网络的代码和刚才复制代码的相同
修改的代码也放在 github 欢迎小伙伴下载
在 UWP 有框架的方法访问 WIFI 请看 WiFiAdapter Class (Windows.Devices.WiFi) - Windows UWP applications 使用方法请看 Windows-universal-samples/Samples/WiFiScan 但是 Win32 如果不打包 UWP 不能调上面方法
2019-9-30-dotnet-枚举当前设备wifi热点的更多相关文章
- Android WiFi开发教程(三)——WiFi热点数据传输
在上一篇文章中介绍了WiFi的搜索和连接,如果你还没阅读过,建议先阅读上一篇Android WiFi开发教程(二)——WiFi的搜索和连接.本篇接着简单介绍手机上如何通过WiFi热点进行数据传输. 跟 ...
- MFC枚举USB设备碰到的一个疑难,还没解决
代码如下: 打开USB Hub设备之后,返回句柄hHubDevice,然后使用EnumerateHubPorts来枚举Hub的端 口.疑问在代码的中文注释中. bool CUsbEnumHub::En ...
- C#枚举硬件设备(升级版)
原文:C#枚举硬件设备(升级版) 先取设备类型: ; } }
- 2019.3.28&2019.3.30考试
2019.3.28 : 肥肠爆芡,因为这场考试的题太屑了,所以我咕咕了 Upd on 2019.3.30 压进来一篇(因为都没啥意义) 2019.3.30 : 全机房读错题+没有大样例=T2全体爆炸 ...
- Alpha冲刺(7/10)——2019.4.30
所属课程 软件工程1916|W(福州大学) 作业要求 Alpha冲刺(7/10)--2019.4.30 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪 ...
- Android 开发 创建WiFi、WiFi热点 ---开发集合
WIFI 权限 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> < ...
- Android WiFi/WiFi热点开发总结
首先看一下WiFi的自我介绍: Wi-Fi是一种允许电子设备连接到一个无线局域网(WLAN)的技术,通常使用2.4G UHF或5G SHF ISM 射频频段.连接到无线局域网通常是有密码保护的:但也可 ...
- Linux创建WiFi热点
手机流量用完,需要开WiFi,由于是LinuxMint,感觉配置还算容易,找到一个不错的教程,收藏一下,以备后用.除了修改配置文件那步在我的电脑不需要外其他基本正确,而且Mint本来就衍生自Ubunt ...
- Linux:Ubuntu16.04下创建Wifi热点
Linux:Ubuntu16.04下创建Wifi热点 说明: 1.Ubuntu16.04里面可以直接创建热点,而不用像以前的版本,还要其他辅助工具. 2.本篇文章转载自编程人生 具体步骤如下: 1. ...
- 【树莓派】【转】将树莓派Raspberry Pi设置为无线路由器(WiFi热点AP,RTL8188CUS芯片)
下文为转载,文章转自:http://wangye.org/blog/archives/845/,仅供本次学习实践参考. 最近又开始折腾起Raspberry Pi来了,因为某处上网需要锐捷拨号,于是我就 ...
随机推荐
- Jest快速使用指南
1. 引言 写了几个函数,怎么知道写得对不对呢? 可以通过测试函数,当然开发中测试的意义不只是这个 Jest是常用的JavaScript测试框架 官网为:Jest · Delightful JavaS ...
- Linux修改账户密码
打开终端并登录到要修改密码的账户 输入 passwd 命令,然后 Enter 系统会提示你输入 Current password. 如果是第一次登录或者忘记密码,使用 passwd -d userna ...
- Visual Studio 2022的安装 - 编程手把手系列文章
工欲善其事,必先利其器. 今天讲的是编程开发工具Visual Studio 2022的安装.作为手把手系列的开始,需要先对进行编程所使用的工具进行了解.此博文从下面几个步骤入手,对VS 2022这个开 ...
- 记打包的2个错误-项目BotBattle
目录 记打包项目的 2 个错误 0.概述 1.spring-boot-maven-plugin 版本 1.1 问题 1.2 添加版本号 2.总项目 2.1 问题 2.2 核验主类 2.3backend ...
- Arm架构下麒麟操作系统安装配置Mariadb数据库
1.安装配置JDK (1)检查机器是否已安装JDK 执行 java -version命令查看机器是否安装JDK,一般麒麟操作系统默认安装openjdk 1.8. (2)安装指定版本JDK 如果麒麟操作 ...
- OpenHarmony标准系统开机时长优化
简介 万物互联时代,产品性能至关重要,而系统启动时间是系统性能的重要组成部分,因为用户必须等待系统启动完成后才能使用设备.对于经常需要进行冷启动的汽车等设备而言,较短的启动时间至关重要(没有人喜欢在等 ...
- K8S 性能优化-K8S Node 参数调优
前言 K8S 性能优化系列文章,本文为第四篇:Kubernetes Node 性能优化参数最佳实践. 系列文章: <K8S 性能优化 - OS sysctl 调优> <K8S 性能优 ...
- 在HarmonyOS上使用ArkUI实现计步器应用
介绍 本篇Codelab使用ArkTS语言实现计步器应用,应用主要包括计步传感器.定位服务和后台任务功能: 1. 通过订阅计步器传感器获取计步器数据,处理后显示. 2. 通过订阅位置服务获取位 ...
- 及刻周边惠:拥抱HarmonyOS原子化服务
原文链接:https://mp.weixin.qq.com/s/Y75eiRlvDLXzoZWzAiZdeg,点击链接查看更多技术内容: 开发背景 及刻周边惠是梦享网络旗下本地生活服务平台,旨在为消费 ...
- GAN的一些问题
GAN为什么难以训练? 大多深度模型的训练都使用优化算法寻找损失函数比较低的值.优化算法通常是个可靠的"下山"过程.生成对抗神经网络要求双方在博弈的过程中达到势均力敌(均衡).每个 ...