List All Wireless Networks Python for PC

后端 未结 3 1456
感动是毒
感动是毒 2020-12-09 21:48

I am trying to find out how I can list all of the available wireless networks in Python. I am using Windows 8.1.

Is there a built-in function I can call, or through

相关标签:
3条回答
  • 2020-12-09 22:29

    You'll want the subprocess module and a windows command:

    import subprocess
    results = subprocess.check_output(["netsh", "wlan", "show", "network"])
    

    A little extra to just get SSID's.

    results = results.decode("ascii") # needed in python 3
    results = results.replace("\r","")
    ls = results.split("\n")
    ls = ls[4:]
    ssids = []
    x = 0
    while x < len(ls):
        if x % 5 == 0:
            ssids.append(ls[x])
        x += 1
    print(ssids)
    

    https://docs.python.org/2/library/subprocess.html

    0 讨论(0)
  • 2020-12-09 22:33

    c:\netsh

    C:\netsh\wlan

    c:\netsh\wlan)Show all

    0 讨论(0)
  • 2020-12-09 22:39

    This is a question from the olden days, but even at the time the accepted answer could have been much more Pythonic - e.g.,

    r = subprocess.run(["netsh", "wlan", "show", "network"], capture_output=True, text=True).stdout
    ls = r.split("\n")
    ssids = [k for k in ls if 'SSID' in k]
    

    If you just want to SSID names in a list, change the ssids = line to

    ssids = [v.strip() for k,v in (p.split(':') for p in ls if 'SSID' in p)]
    
    0 讨论(0)
提交回复
热议问题