C# - How do I access the WLAN signal strength and others?

前端 未结 3 1559
有刺的猬
有刺的猬 2020-12-08 05:43

Many scientists have published papers documenting how devices connected via WLAN can be tracked by measuring its Signal Strength, Time Of Arrival, Round Trip Time, etc. Any

相关标签:
3条回答
  • 2020-12-08 06:08

    hello for WIndows 7 this is a good code wich can detect all AP with MAC adress RSSI SSID :

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using NativeWifi;
    
    class Program
    {
    
        static void Main(string[] args)
        {
    
            WlanClient client = new WlanClient();
            // Wlan = new WlanClient();
            try
            {
                foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
                {
    
                    Wlan.WlanBssEntry[] wlanBssEntries = wlanIface.GetNetworkBssList();
    
                    foreach (Wlan.WlanBssEntry network in wlanBssEntries)
                    {
                        int rss = network.rssi;
                        //     MessageBox.Show(rss.ToString());
                        byte[] macAddr = network.dot11Bssid;
    
                        string tMac = "";
    
                        for (int i = 0; i < macAddr.Length; i++)
                        {
    
                            tMac += macAddr[i].ToString("x2").PadLeft(2, '0').ToUpper();
    
                        }
    
    
    
                        Console.WriteLine("Found network with SSID {0}.", System.Text.ASCIIEncoding.ASCII.GetString(network.dot11Ssid.SSID).ToString());
    
                        Console.WriteLine("Signal: {0}%.", network.linkQuality);
    
                        Console.WriteLine("BSS Type: {0}.", network.dot11BssType);
    
                        Console.WriteLine("MAC: {0}.", tMac);
    
                        Console.WriteLine("RSSID:{0}", rss.ToString());
    
    
                    }
                    Console.ReadLine();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
    
            }
        }  
    }
    

    i hope it will be helpful enjoy

    0 讨论(0)
  • 2020-12-08 06:20

    Windows itself provides a Location API now.

    0 讨论(0)
  • 2020-12-08 06:29

    The Managed Wifi API will provide signal strength information. Here's a code snippet adapted from a question I previously posed and was answered here:

    static void Main(string[] args)
    {
        WlanClient client = new WlanClient();
        foreach ( WlanClient.WlanInterface wlanIface in client.Interfaces )
        {
            Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList( 0 );
            foreach ( Wlan.WlanAvailableNetwork network in networks )
            {
                Console.WriteLine( "Found network with SSID {0} and Siqnal Quality {1}.", GetStringForSSID(network.dot11Ssid), network.wlanSignalQuality);
            }
        }
    }
    
    static string GetStringForSSID(Wlan.Dot11Ssid ssid)
    {
        return Encoding.ASCII.GetString(ssid.SSID, 0, (int) ssid.SSIDLength);
    }
    
    0 讨论(0)
提交回复
热议问题