前言
楼主最近在写一个WLAN上位机,遇到了使用C#查询SSID 的问题。CSDN上很多文章都比较老了,而且代码过于复杂。楼主自己想了一个使用CMD来获得SSID的方法
C#本身是没有获得WINDOWS网路信息的能力,必须要用系统API,WMI什么的,比较麻烦。其实完全可以用CMD命令,十分简单快捷。
如果对您有用,还请点赞收藏关注,这对我十分重要♪(´▽`)
CMD
netsh wlan show interfaces
效果:
C:\Users\Basicoperation>netsh wlan show interfaces系统上有 1 个接口:名称 : WLAN说明 : Intel(R) Wi-Fi 6 AX201 160MHzGUID :******************物理地址 : *********************界面类型 : 主要状态 : 已连接SSID : TP-LINK_9FAABSSID : *************网络类型 : 结构无线电类型 : ***********身份验证 : WPA2 - 个人密码 :***********连接模式 : 配置文件频带 : 2.4 GHz通道 : 11接收速率(Mbps) : 54传输速率 (Mbps) : 270信号 : 84%配置文件 : TP-LINK_9FAA
那C#就很好写了
using System;
using System.Diagnostics;class Program
{static void Main(){try{// 执行CMD命令来获取无线网络接口信息Process process = new Process();process.StartInfo.FileName = "netsh";process.StartInfo.Arguments = "wlan show interfaces";process.StartInfo.UseShellExecute = false;process.StartInfo.RedirectStandardOutput = true;process.StartInfo.CreateNoWindow = true;process.Start();// 读取命令输出string output = process.StandardOutput.ReadToEnd();process.WaitForExit();// 解析输出以获取SSIDstring ssid = ExtractSsidFromOutput(output);if (!string.IsNullOrEmpty(ssid)){Console.WriteLine("当前连接的SSID是: " + ssid);}else{Console.WriteLine("未连接到任何无线网络或无法获取SSID。");}}catch (Exception ex){Console.WriteLine("发生错误: " + ex.Message);}}static string ExtractSsidFromOutput(string output){string[] lines = output.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);foreach (string line in lines){if (line.Trim().StartsWith("SSID")){// 假设SSID在等号后面,去除前导和尾随空格string ssid = line.Split(new[] { ':' }, 2)[1].Trim();return ssid;}}return null;}
}
运行效果
当前连接的SSID是: TP-LINK_9FAA
如果对您有用,还请点赞收藏关注,这对我十分重要♪(´▽`)