Bootstrap

使用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

如果对您有用,还请点赞收藏关注,这对我十分重要♪(´▽`)

;