Obtenir SSID du réseau sans fil auquel je suis connecté C#.Net sous Windows Vista

j'aimerais savoir s'il existe une classe .Net qui me permette de connaître le SSID du réseau sans fil auquel je suis connecté. Jusqu'à présent, je n'ai trouvé que la bibliothèque liée ci-dessous. Est le mieux que je puisse obtenir ou dois-je utiliser autre chose? géré WiFi ( http://www.codeplex.com/managedwifi )

La méthode qui exploite WMI works pour Windows XP mais il ne fonctionne plus avec Windows Vista.

23
demandé sur mariosangiorgio 2009-01-11 00:05:50

6 réponses

j'ai résolu en utilisant la bibliothèque. Il s'est avéré assez facile de travailler avec les classes fournies:

J'ai d'abord dû créer un objet WlanClient

wlan = new WlanClient();

et ensuite je peux obtenir la liste des SSIDs auxquels le PC est connecté avec ce code:

Collection<String> connectedSsids = new Collection<string>();

foreach (WlanClient.WlanInterface wlanInterface in wlan.Interfaces)
{
   Wlan.Dot11Ssid ssid = wlanInterface.CurrentConnection.wlanAssociationAttributes.dot11Ssid;
   connectedSsids.Add(new String(Encoding.ASCII.GetChars(ssid.SSID,0, (int)ssid.SSIDLength)));
}
23
répondu mariosangiorgio 2018-08-30 04:52:31

Il semble que cela va faire ce que vous voulez:

ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\WMI",
"SELECT * FROM MSNdis_80211_ServiceSetIdentifier");


foreach (ManagementObject queryObj in searcher.Get())
{
    Console.WriteLine("-----------------------------------");
    Console.WriteLine("MSNdis_80211_ServiceSetIdentifier instance");
    Console.WriteLine("-----------------------------------");

    if(queryObj["Ndis80211SsId"] == null)
        Console.WriteLine("Ndis80211SsId: {0}",queryObj["Ndis80211SsId"]);
    else
    {
        Byte[] arrNdis80211SsId = (Byte[])
        (queryObj["Ndis80211SsId"]);
        foreach (Byte arrValue in arrNdis80211SsId)
        {
            Console.WriteLine("Ndis80211SsId: {0}", arrValue);
        }
    }
}

de http://bytes.com/groups/net-c/657473-wmi-wifi-discovery

3
répondu ine 2009-01-10 21:12:23

nous utilisions la bibliothèque wifi gérée, mais elle lance des exceptions si le réseau est déconnecté lors d'une requête.

, Essayez:

var process = new Process
{
    StartInfo =
    {
    FileName = "netsh.exe",
    Arguments = "wlan show interfaces",
    UseShellExecute = false,
    RedirectStandardOutput = true,
    CreateNoWindow = true
    }
};
process.Start();

var output = process.StandardOutput.ReadToEnd();
var line = output.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).FirstOrDefault(l => l.Contains("SSID") && !l.Contains("BSSID"));
if (line == null)
{
    return string.Empty;
}
var ssid = line.Split(new[] { ":" }, StringSplitOptions.RemoveEmptyEntries)[1].TrimStart();
return ssid;
2
répondu Byron Ross 2018-08-30 04:54:09

vous allez devoir utiliser l'API WLAN native. Il y a une longue discussion à ce sujet ici . Apparemment, c'est ce que L'API Wifi gérée utilise, donc il sera plus facile pour vous de l'utiliser si vous n'avez pas de restrictions pour utiliser le code LGPL.

0
répondu Recep 2009-01-10 23:10:54

consultez le site http://wwww.daedaltech.com ils donnent une dll avec laquelle nous pouvons trouver l'adresse SSID et mac

-3
répondu 2009-05-18 15:33:32