c#使用ManagedWifi查看当前Wifi信号并选择wifi的示例

 更新时间:2014年04月09日 10:01:06   作者:  
这篇文章主要介绍了c#使用ManagedWifi查看当前Wifi信号并选择wifi的示例,需要的朋友可以参考下

使用ManagedWifi查看当前Wifi信号并选择wifi

复制代码 代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NativeWifi;

namespace WifiExample
{
    class WifiManager
    {
        //CMCC的WIFISSID
        public WIFISSID cmccWifiSSID;

        public WifiManager()
        {
            ScanSSID();
        }

        /// <summary>
        /// 将SSID转化成字符串
        /// </summary>
        static string GetStringForSSID(Wlan.Dot11Ssid ssid)
        {
            return Encoding.UTF8.GetString(ssid.SSID, 0, (int)ssid.SSIDLength);
        }

        /// <summary> 
        /// 枚举所有无线设备接收到的SSID 
        /// </summary> 
        public void ScanSSID()
        {
            WlanClient client = new WlanClient();
            foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
            {
                // Lists all networks with WEP security 
                Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList(0);
                foreach (Wlan.WlanAvailableNetwork network in networks)
                {
                    WIFISSID targetSSID = new WIFISSID();
                    targetSSID.wlanInterface = wlanIface;
                    targetSSID.wlanSignalQuality = (int)network.wlanSignalQuality;
                    targetSSID.SSID = GetStringForSSID(network.dot11Ssid);
                    targetSSID.dot11DefaultAuthAlgorithm = network.dot11DefaultAuthAlgorithm.ToString();
                    targetSSID.dot11DefaultCipherAlgorithm = network.dot11DefaultCipherAlgorithm.ToString();
                    Console.WriteLine(targetSSID.SSID);
                    if (targetSSID.SSID.ToLower().Equals("cmcc"))
                    {
                        cmccWifiSSID = targetSSID;
                        return;
                    }
                }
            }
        } // EnumSSID 

        /// <summary> 
        /// 连接到CMCC
        /// </summary> 
        /// <param name="ssid"></param> 
        public void ConnectToCMCC()
        {
            // Connects to a known network with WEP security 
            string profileName = cmccWifiSSID.SSID; // this is also the SSID
            Console.WriteLine("profileName" + profileName);
            cmccWifiSSID.wlanInterface.Connect(Wlan.WlanConnectionMode.Profile, Wlan.Dot11BssType.Any, profileName);
        }

        /// <summary> 
        /// 字符串转Hex 
        /// </summary> 
        /// <param name="str"></param> 
        /// <returns></returns> 
        public static string StringToHex(string str)
        {
            StringBuilder sb = new StringBuilder();
            byte[] byStr = System.Text.Encoding.Default.GetBytes(str); //默认是System.Text.Encoding.Default.GetBytes(str) 
            for (int i = 0; i < byStr.Length; i++)
            {
                sb.Append(Convert.ToString(byStr[i], 16));
            }

            return (sb.ToString().ToUpper());
        }

    } // Class WifiManager


    class WIFISSID
    {
        public string SSID = "NONE";
        public string dot11DefaultAuthAlgorithm = "";
        public string dot11DefaultCipherAlgorithm = "";
        public bool networkConnectable = true;
        public string wlanNotConnectableReason = "";
        public int wlanSignalQuality = 0;
        public WlanClient.WlanInterface wlanInterface = null;
    }

}
```


调用链接CMCC
===
```
WifiManager wm = new WifiManager();
wm.ConnectToCMCC();

相关文章

  • 枚举的用法详细总结

    枚举的用法详细总结

    本篇文章主要是对枚举的用法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • C#判断一个类是否实现了某个接口3种实现方法

    C#判断一个类是否实现了某个接口3种实现方法

    这篇文章主要介绍了C#判断一个类是否实现了某个接口3种实现方法,本文直接给出实现代码,需要的朋友可以参考下
    2015-06-06
  • c# 实现计时器功能

    c# 实现计时器功能

    这篇文章主要介绍了c# 实现计时器功能的示例代码,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-12-12
  • C#创建数据库及附加数据库的操作方法

    C#创建数据库及附加数据库的操作方法

    这篇文章主要介绍了C#创建数据库及附加数据库的操作方法,涉及C#针对数据库常见的创建、添加、连接等操作技巧,需要的朋友可以参考下
    2016-06-06
  • 计算字符串和文件MD5值的小例子

    计算字符串和文件MD5值的小例子

    这篇文章介绍了计算字符串和文件MD5值的小例子,有需要的朋友可以参考一下
    2013-09-09
  • C#基于Socket实现多人聊天功能

    C#基于Socket实现多人聊天功能

    这篇文章主要为大家详细介绍了C#基于Socket实现多人聊天功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • C# TreeView无限目录树实现方法

    C# TreeView无限目录树实现方法

    这篇文章主要介绍了C# TreeView无限目录树实现方法,实例分析了TreeView节点操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • C#中使用ADOMD.NET查询多维数据集的实现方法

    C#中使用ADOMD.NET查询多维数据集的实现方法

    这篇文章主要介绍了C#中使用ADOMD.NET查询多维数据集的实现方法,详细讲述了C#中使用ADOMD.NET查询多维数据集的原理与实现技巧,需要的朋友可以参考下
    2014-10-10
  • C# winform自定义翻页控件详解

    C# winform自定义翻页控件详解

    这篇文章主要为大家详细介绍了C# winform自定义翻页控件的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • 使用VS2019生成C#应用安装包的方法步骤

    使用VS2019生成C#应用安装包的方法步骤

    本文主要介绍了使用VS2019生成C#应用安装包的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05

最新评论