Search code examples
c#windowslocationtrackingwifi

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


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 idea how I can access these values in Windows using any .NET API?

Or do you know of software SDKs already available for location tracking?


Solution

  • 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