Windows C#调用命令行实现WIFI管理

本文介绍如何使用C#调用命令行进行WIFI管理,包括扫描可见网络、获取已保存配置、导出配置信息以及导入并设置密码。通过示例代码和步骤解析,展示了从获取WiFi列表到连接WiFi的全过程。
摘要由CSDN通过智能技术生成

最近有个需求,需要通过在软件客户端里实现对WIFI管理。所以就查了相关资料搞了这个工具类,希望可以帮助到大家。这个只是个简单的工具类,所以有很大的优化空间。废话不多说,进入正文········

首先我们来看看从命令行里能拿到数据:使用netsh wlan命令
在这里插入图片描述
当我们在操作设置WIFI网络连接的时候都会在系统中生成相应的配置文件。上面这些命令就是对配置文件的各种操作。我们首先看show这个命令
在这里插入图片描述

1.可见网络扫描

先看看show networks这个命令,这个可以获取当前你的网卡扫描到的WiFi信号。
在这里插入图片描述
我们可以通过调用进程启动命令行,获取输出数据。遍历每行,因为每个WIFI名称前都是SSID:数字,于是就可以使用正则表达式,^SSID[*0-9]:[^\\\/\^]+ 匹配满足表达式的字符串,过滤出wifi名称加入集合。

        public static List<string> GetWIFIInfos()
        {
   
            List<string> wifis = null;
            Regex regex = new Regex(@"^SSID[*0-9]:[^\\\/\^]+", RegexOptions.IgnorePatternWhitespace|RegexOptions.Singleline);
            if(Helpers.WinCmdHelper.ExcuteDosCommand("netsh wlan show networks mode=BSSID\r\n", false, true,out string res))
            {
   
                wifis = new List<string>();
                string[] lines = res.Split("\r\n");
                foreach (var item in lines)
                {
   
                    var _item = item.Replace(" ","");
                    bool match = regex.IsMatch(_item);
                    if (match)
                    {
   
                        wifis.Add(_item.Split(':')?[1]);
                    }
                }
            }
            return wifis;
        }

来看看运行效果吧。正则不是很熟悉,可能写的有问题,每次过滤的都会有些偏差,希望大神能指导一下。不过思路应该是没问题的。
在这里插入图片描述

2.获取本地已保存WIFI配置信息

这个功能需要调用命令行netsh wlan show profiles来看看执行结果
在这里插入图片描述
我本地连过的所有的Wifi配置文件都在这里了。当然也准备好了解析函数。

public static List<string> GetUserProfiles()
        {
   
            List<string> prof = null;
            Regex regex = new Regex(@"[\u4e00-\u9fa5]+:[^\\\/\^]+", RegexOptions.IgnorePat
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值