标签: wlanapi

如果存在两个具有类似SSID的WiFi网络,您如何区分代码中的两个?

我正在编写一个小型网络管理工具.为了提取各种WiFi网络的详细信息,我正在调用wlanapi.dll, WlanGetProfile(...)API方法来获取每个可用WiFi网络的配置文件信息.

假设两个本地WiFi网络具有相似的SSID,那么当我向用户提供信息时,如何查询这两个网络上的信息并区分这两个网络?

我正在用C#编写我的应用程序,但是,如果他们能给我我需要的答案,可以提供非特定于代码的通用细节.但是,我将其标记为C#/ .Net,因为如果有办法使用本机.Net库获取此信息,我会欣赏C#代码示例.

.net c# network-programming wlanapi ssid

11
推荐指数
2
解决办法
828
查看次数

使用CryptUnprotectData解密WEP wlan配置文件密钥

我正在尝试使用CryptUnprotectData解密WEP配置文件的密钥.我获取配置文件密钥的方法是使用netsh导出配置文件.

netsh wlan export profile name="MyWEP" folder="./"
Run Code Online (Sandbox Code Playgroud)

现在,我手动将密钥材料从netsh命令生成的.xml文件复制到我的程序.顺便说一下,我正在解密的是 -

DATA_BLOB DataOut, DataVerify;
DataOut.cbData = encryptData.length();
DataOut.pbData = (BYTE*)("I_Manually_Copy_The_WEP_Key_Here");

if (CryptUnprotectData( &DataOut,
                        NULL,
                        NULL,
                        NULL,
                        NULL,
                        0,
                        &DataVerify))
{
    printf("The decrypted data is: %s\n", DataVerify.pbData);
}
else
{
    printf("Failed. Error Code: %d", GetLastError());
}
Run Code Online (Sandbox Code Playgroud)

但我收到错误代码13引用无效数据.我究竟做错了什么 ?在Win 7及更高版本中,我可以直接使用WlanGetProfile和参数WLAN_PROFILE_GET_PLAINTEXT_KEY.但我在Vista没有选择使用CryptUnprotectData函数.我这里看过类似的帖子,但是没有得到太多有用的信息.此外,我使用相同的系统具有相同的用户登录凭据.有人可以建议我怎么办?

PS:我在Windows桌面SDK论坛上发布了相同的问题,但还没有得到回复.试试我的运气吧.

c encryption wlanapi wep windows-vista

7
推荐指数
1
解决办法
7842
查看次数

使用C#或Powershell扫描所有可用的无线网络并连接到特定的SSID

我正在尝试编写一个脚本,扫描所有可用的无线网络并连接到特定网络(SSID).有没有人为此已经编写了示例代码?由于某些限制,我无法安装第三方软件(托管的wifi api).

c# powershell wlanapi

5
推荐指数
1
解决办法
5600
查看次数

如何在Delphi中使用"Native Wifi API"Windows API函数

我试图在delphi上使用Windows API中的函数,Windows Wlanapi.dll(Native WIFI API)的函数

WlanOpenHandle

DWORD WINAPI WlanOpenHandle(
  __in        DWORD dwClientVersion,
  __reserved  PVOID pReserved,
  __out       PDWORD pdwNegotiatedVersion,
  __out       PHANDLE phClientHandle
);
Run Code Online (Sandbox Code Playgroud)

WlanHostedNetworkQueryProperty

DWORD WINAPI WlanHostedNetworkQueryProperty(
  __in        HANDLE hClientHandle,
  __in        WLAN_HOSTED_NETWORK_OPCODE OpCode,
  __out       PDWORD pdwDataSize,
  __out       PVOID *ppvData,
  __out       PWLAN_OPCODE_VALUE_TYPE *pWlanOpcodeValueType,
  __reserved  PVOID pvReserved
);
Run Code Online (Sandbox Code Playgroud)

我试图使用这些功能和其他人几个小时,阅读MSDN参考和其他网站,但我不能让这个工作.

我的尝试

type

  TWlanOpenHandle = function(  dwClientVersion:DWORD;
                               pReserved:Pointer;
                               pdwNegotiatedVersion:PDWORD;
                               phClientHandle:PHANDLE
                            ):DWORD; stdcall;

  function apiWlanOpenHandle(  dwClientVersion:DWORD;
                               pReserved:Pointer;
                               pdwNegotiatedVersion:PDWORD;
                               phClientHandle:PHANDLE
                      ):DWORD;


implementation

function apiWlanOpenHandle ( dwClientVersion:DWORD;  pReserved:Pointer; pdwNegotiatedVersion:PDWORD; phClientHandle:PHANDLE ):DWORD;
var
  WlanOpenHandle: TWlanOpenHandle;
  DLL: Cardinal;
begin
  DLL:=LoadLibrary('Wlanapi.dll'); …
Run Code Online (Sandbox Code Playgroud)

delphi dll winapi wlanapi

4
推荐指数
1
解决办法
6462
查看次数

获取 Wi-Fi 配置文件信息

我使用的是 Windows 8.1,它没有工具(带有 GUI)来管理 wifi 网络配置文件。所以我正在写一篇对我有帮助的文章。我做了一些谷歌搜索并找到了Managed Wifi API,在教程的帮助下,我设法将这段代码放在一起:

foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
{
    foreach (Wlan.WlanProfileInfo profileInfo in wlanIface.GetProfiles())
    {
        string profileName = profileInfo.profileName;
        ListViewItem item = new ListViewItem(profileName);

        string profileXML = wlanIface.GetProfileXml(profileInfo.profileName);
        XmlDocument doc = new XmlDocument();
        doc.LoadXml(profileXML);
        var NSManager = new XmlNamespaceManager(doc.NameTable);
        NSManager.AddNamespace("d", "http://www.microsoft.com/networking/WLAN/profile/v1");
        XmlNode node = doc.DocumentElement.SelectSingleNode("//d:WLANProfile/d:MSM/d:security/d:authEncryption/d:authentication", NSManager);

        item.SubItems.Add(node.InnerText);
        Profiles.Items.Add(item);
    }
}
Run Code Online (Sandbox Code Playgroud)

获取保存的网络配置文件列表并将它们打印在 ListView 上。我有两个问题。一是如何使用 Managed Wifi API 获取完整的个人资料信息?因为我唯一能得到的就是个人资料名称。网站上没有文档。

第二个问题是,由于无法使用API​​ 获取完整的网络信息,因此我使用API​​以XML格式打印配置文件信息,然后解析XML并读取它。一个示例 XML:

<?xml version="1.0"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
    <name>MEDO PUB</name>
    <SSIDConfig>
        <SSID>
            <hex>4D45444F20505542</hex>
            <name>MEDO PUB</name>
        </SSID>
    </SSIDConfig> …
Run Code Online (Sandbox Code Playgroud)

c# xml encryption wlanapi wifi

3
推荐指数
1
解决办法
6845
查看次数

标签 统计

wlanapi ×5

c# ×3

encryption ×2

.net ×1

c ×1

delphi ×1

dll ×1

network-programming ×1

powershell ×1

ssid ×1

wep ×1

wifi ×1

winapi ×1

windows-vista ×1

xml ×1