WebElektronika

WiFi-s hálózatok felderítése C# nyelv segítségével

person access_time 2016.11.02.
Elkészítünk most .NET keretkörnyezetben a C# nyelv segítségével egy olyan Console-os alkalmazást, amelynek segítségével a környéken lévő összes WiFi-s hálózat főbb tulajdonságait meg tudjuk határozni. Látni fogjuk, hogy az adott WiFi-t üzemeltető hiába tiltja le a WiFi hálózat nevének (SSID) a sugárzását, ez természetesen nem jelent akadályt, az SSID sugárzásának a tiltása nem jelent sajnos védelmet.


A WiFi-vel foglalkozó minisorozatunk második részében felderítjük a környékünkön lévő WiFi hálózatokat. Látni fogjuk, hogy hiába tiltották le az üzemeltetők az SSID-t (WiFi neve), a főbb tulajdonságok, illetve a BSSID láthatóvá válnak számunkra.

Indítsuk el a Visual Studio 2015 Community-t és hozzunk létre egy Console alkalmazást (1. ábra).

kep
1. ábra   A projekt létrehozása
 

Ezután a Solution Explorer-ben vegyük fel a korábban létrehozott DLL-ünket, adjuk tehát hozzá ehhez a projekthez (2. ábra).

kep
2. ábra   A DLL-ünk felvétele a projektbe
 

Ezt követően írjuk be a Program osztály Main() metódusába, hogy "WlanClient", és ezután a "using NativeWifi" szerelvény kényelmesen felvehető (3. ábra). Ezt a lépést természetesen kihagyhatjuk, ha "kézzel" írjuk be ezt a szerelvényt.

kep
3. ábra   A NativeWifi szerelvény felvétele
 

Másoljuk be a következő kódot a projektünkbe. A WlanClient osztályból készítünk egy wlanKliens néven egy példányt, és az Interfaces segítségével megkapjuk az elérhető WiFi hálózatokat egy gyűjetményben. Ezt a gyűjteményt a foreach ciklussal bejárjuk. Minden "item"-nek külön gyűjteménye van, amelyet a Wlan.WlanAvailableNetwork típusú, wifi nevű tömbben találunk meg. Ezt a tömböt a GetAvailableNetworkList() metódussal töltjük fel.

using NativeWifi;

namespace ConsoleWiFiLista
{
    class Program
    {
        static void Main(string[] args)
        {
            WlanClient wlanKliens = new WlanClient();
            foreach (var item in wlanKliens.Interfaces)
            {
                Wlan.WlanAvailableNetwork[] wifi = item.GetAvailableNetworkList(0);
                
                foreach (var item2 in wifi)
                {
                    Console.WriteLine("SSID : \t\t{0}", item2.profileName);
                    Console.WriteLine("Típus : \t{0}", item2.dot11BssType);
                    Console.WriteLine("Auth :\t\t{0}", item2.dot11DefaultAuthAlgorithm);
                    Console.WriteLine("Encryption : \t{0}", item2.dot11DefaultCipherAlgorithm);
                    Console.WriteLine("Titkosítás : \t{0}", item2.securityEnabled);
                    Console.WriteLine("Jelerősség : \t{0}", item2.wlanSignalQuality);
                    Console.WriteLine("Kapcsolódhat : \t{0}", item2.networkConnectable);
                    Console.WriteLine("BSSID száma :\t{0}", item2.numberOfBssids + "\n");
                }
            }
            Console.ReadLine();
        }
    }
}


Ha érdeklődik a cikk teljes tartalma után, kérjük, lépjen be a WebElektronika oldalára.

     Köszönjük.