gpt4 book ai didi

python - 在 Python 中使用 WlanScan 强制 wifi 扫描

转载 作者:太空宇宙 更新时间:2023-11-04 11:17:31 25 4
gpt4 key购买 nike

我想知道如何从 python 执行 WlanScan 函数来启动无线网络扫描。我正在使用 python 模块 win32wifi .它需要使用 WlanOpenHandle 和接口(interface) GUID pInterfaceGuid 获得的句柄。我不知道如何获得这个 GUID。任何帮助将不胜感激。

How do I get this pInterfaceGuid

最佳答案

我安装了 Win32WiFi 模块,并在简单检查了@Castorix 提供的 URL 之后(所有需要的信息都可以在 [MS.Docs]: wlanapi.h header 找到),以及源代码代码,我能够编写这个小示例。

code00.py:

#!/usr/bin/env python3

import sys

from win32wifi import Win32Wifi as ww


def main(*argv):
interfaces = ww.getWirelessInterfaces()
print("WLAN Interfaces: {:d}".format(len(interfaces)))
handle = ww.WlanOpenHandle()
for idx , interface in enumerate(interfaces):
print("\n {:d}\n GUID: [{:s}]\n Description: [{:s}]".format(idx, interface.guid_string, interface.description))
try:
scan_result = ww.WlanScan(handle, interface.guid)
except:
print(sys.exc_info())
continue
print("\n Scan result: {:d}".format(scan_result))
ww.WlanCloseHandle(handle)


if __name__ == "__main__":
print("Python {:s} {:03d}bit on {:s}\n".format(" ".join(elem.strip() for elem in sys.version.split("\n")),
64 if sys.maxsize > 0x100000000 else 32, sys.platform))
rc = main(*sys.argv[1:])
print("\nDone.")
sys.exit(rc)

输出:

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q056701614]> "e:\Work\Dev\VEnvs\py_pc064_03.07.06_test0\Scripts\python.exe" code00.py
Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)] 064bit on win32

WLAN Interfaces: 1

0
GUID: [{0C58E048-BC0B-4D5F-A21F-FCD4E4B31806}]
Description: [Intel(R) Dual Band Wireless-AC 8260]

Scan result: 0

Done.


更新#0

根据[SO]: Unable to get all available networks using WlanGetAvailableNetworkList in Python (@CristiFati's answer)更新了代码.它现在适用于具有多个 WLAN 适配器的计算机。

关于python - 在 Python 中使用 WlanScan 强制 wifi 扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56701614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com