使用C# 如何获取本机连接的WIFI名称[C# ---1]
前言
楼主最近在写一个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 160MHz
GUID :******************
物理地址 : *********************
界面类型 : 主要
状态 : 已连接
SSID : TP-LINK_9FAA
BSSID : *************
网络类型 : 结构
无线电类型 : ***********
身份验证 : 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();
// 解析输出以获取SSID
string 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
如果对您有用,还请点赞收藏关注,这对我十分重要♪(´▽`)