lswifi


Namelswifi JSON
Version 0.1.45 PyPI version JSON
download
home_pagehttps://github.com/joshschmelzle/lswifi
Summarya CLI-centric Wi-Fi scanning tool for Windows
upload_time2024-07-17 18:45:47
maintainerNone
docs_urlNone
authorJosh Schmelzle
requires_python>=3.7
licenseBSD 3-Clause License
keywords lswifi scanner wireless wifi 802.11 wlan rlan native wifi wlanapi
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            ![pypi-badge](https://img.shields.io/pypi/v/lswifi) ![pypi-format](https://img.shields.io/pypi/format/lswifi) ![pypi-implementation](https://img.shields.io/pypi/implementation/lswifi) ![pypi-version](https://img.shields.io/pypi/pyversions/lswifi) ![coverage-badge](https://raw.githubusercontent.com/joshschmelzle/lswifi/main/coverage.svg) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](https://github.com/joshschmelzle/lswifi/blob/main/CODE_OF_CONDUCT.md)

<img src="https://raw.githubusercontent.com/joshschmelzle/lswifi/main/docs/lswifi_orange_crop.png" width="400">

`lswifi` is a CLI-centric Wi-Fi scanning tool for Windows that provides more information about nearby Wi-Fi networks than built-in tools (e.g. `netsh show wlan networks`). Examples include Received Signal Strength Indicator (RSSI), showing security AKMs and ciphers, parsing 802.11 feature set, looking at 6 GHz Reduced Neighbor Reports, and more. With capable Wi-Fi adapters, lswifi can detect and show networks in 2.4 GHz, 5 GHz, and 6 GHz bands.

Installation
------------

Note: The Python Scripts directory must be added to the PATH environment variable.

``` {.sourceCode .bash}
> python -m pip install lswifi
```

![alt](https://raw.githubusercontent.com/joshschmelzle/lswifi/main/docs/pip_install.gif "animation showing install of lswifi")

Usage
-----

Output nearby Wi-Fi networks:

``` {.sourceCode .bash}
> lswifi
```

Output nearby Wi-Fi networks that have a detected signal of `-60 dBm` or stronger:

``` {.sourceCode .bash}
> lswifi -t -60
```

Output only networks that match `my_ssid` (partial match support):

``` {.sourceCode .bash}
> lswifi -include my_ssid
```

Output verbose information (including Information Elements) for BSSID `00:00:00:00:00:00` (exact match):

``` {.sourceCode .bash}
> lswifi -ies 00:00:00:00:00:00
```

![alt](https://raw.githubusercontent.com/joshschmelzle/lswifi/main/docs/information_elements.gif "animation showing printing verbose information for a particular BSSID")

Print help information:

``` {.sourceCode .bash}
> lswifi -h
```

![alt](https://raw.githubusercontent.com/joshschmelzle/lswifi/main/docs/help_menu.gif "animation showing printing help for lswifi")

Print and add detected AP names column in output:

``` {.sourceCode .bash}
> lswifi --ap-names
```

Print and add detected AP names and QBSS column in output (try adding --mfp or --tpc too!):

``` {.sourceCode .bash}
> lswifi --ap-names --qbss
```

Print an alternative table for BSSes which may contain 6 GHz Reduced Neighbor Reports:

``` {.sourceCode .bash}
> lswifi -rnr
```

Watch event notifications (inc. roaming, connection, scanning, etc.):

``` {.sourceCode .bash}
> lswifi --watchevents
```

CLI options
-----------

```ascii
options:
  -h, --help            show this help message and exit
  -version, --version, -V
                        show program's version number and exit
  -n #, --scans #       set how many scans to do before exiting
  --time #              set test in seconds to perform scans for
  -i #, --interval #    seconds between scans
  -ies [BSSID]          print extra information about information elements for a specified BSSID
  -threshold -82, -t -82
                        threshold which excludes networks with weak signal strength from results (-82 is default)
  -all                  remove threshold filtering which excludes results with weaker signal
  -g                    display filter to limit output by 2.4 GHz band
  -a                    display filter to limit output by 5 GHz band
  -six                  display filter to limit output by 6 GHz band
  -include SSID, -inc SSID
                        display filter to limit results by specified SSIDs (partial matching supported)
  -exclude SSID, -exc SSID
                        display filter to exclude results by specified SSIDs (partial matching supported)
  -bssid BSSID          display filter to limit results by specified BSSIDs (partial matching supported)
  --ap-names            adds an ap name column to output and will cache ap names locally to help provide consistent results
  --qbss                adds station and utilization columns to output using information from AP beacon QBSS IE
  --tpc                 adds TPC column to output using information from AP beacon 802.11h
  --mfp, --pmf          adds Protected Management Frame column to output using information from AP beacon RSNE
  --period              adds beacon period column to output using information from AP beacon
  --uptime, -uptime     sort output by access point uptime based on beacon timestamp
  -rnr, --rnr           special mode to create an alternate table based on RNR results
  --channel-width 20|40|80|160
                        display filter to limit output by a specified channel width
  -ethers               adds an ap name column to output and use an ethers file for the ap names
  --append-ethers BSSID,APNAME
                        append BSSID and AP name to ethers file for AP names
  --display-ethers      display the list of saved ethers; (BSSID,APNAME) mapping
  --data-location       displays where config items are stored on the local machine
  -ap                   print the BSSID of the connected AP
  -channel              print the channel of the connected AP
  -raw                  format output as the raw value for other scripts (for -ap and -channel only)
  --get-interfaces      print current Wi-Fi status and information
  --list-interfaces     print a list of available WLAN interfaces
  --json [JSON]         output will be formatted as json
  --indent 4            JSON output will be formatted with pretty print with provided indent level
  --csv [CSV]           output will be formatted as csv
  -export [BSSID], -exp [BSSID]
                        export bss and ies bytefiles. default behavior will export all from a scan. to export only one, provide full mac        
                        address of the BSSID as argument.
  -decode BYTEFILE      decode a raw .BSS or .IES file
  --bytes BSSID         output debugging bytes for a specified BSSID found in scan results.
  --watchevents         a special mode which watches for notification on a wireless interface such as connection and roaming events
  --syslog <server IP>  syslogs events from --watchevents to a remote syslog server
  --debug               increase verbosity for debugging
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/joshschmelzle/lswifi",
    "name": "lswifi",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "lswifi, scanner, wireless, wifi, 802.11, wlan, rlan, native wifi, wlanapi",
    "author": "Josh Schmelzle",
    "author_email": "josh@joshschmelzle.com",
    "download_url": "https://files.pythonhosted.org/packages/5e/20/f3c6c77bd029bca73e53d8b25e69409241dc87658c7ae8aa27a8bf1fad70/lswifi-0.1.45.tar.gz",
    "platform": "win32",
    "description": "![pypi-badge](https://img.shields.io/pypi/v/lswifi) ![pypi-format](https://img.shields.io/pypi/format/lswifi) ![pypi-implementation](https://img.shields.io/pypi/implementation/lswifi) ![pypi-version](https://img.shields.io/pypi/pyversions/lswifi) ![coverage-badge](https://raw.githubusercontent.com/joshschmelzle/lswifi/main/coverage.svg) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](https://github.com/joshschmelzle/lswifi/blob/main/CODE_OF_CONDUCT.md)\r\n\r\n<img src=\"https://raw.githubusercontent.com/joshschmelzle/lswifi/main/docs/lswifi_orange_crop.png\" width=\"400\">\r\n\r\n`lswifi` is a CLI-centric Wi-Fi scanning tool for Windows that provides more information about nearby Wi-Fi networks than built-in tools (e.g. `netsh show wlan networks`). Examples include Received Signal Strength Indicator (RSSI), showing security AKMs and ciphers, parsing 802.11 feature set, looking at 6 GHz Reduced Neighbor Reports, and more. With capable Wi-Fi adapters, lswifi can detect and show networks in 2.4 GHz, 5 GHz, and 6 GHz bands.\r\n\r\nInstallation\r\n------------\r\n\r\nNote: The Python Scripts directory must be added to the PATH environment variable.\r\n\r\n``` {.sourceCode .bash}\r\n> python -m pip install lswifi\r\n```\r\n\r\n![alt](https://raw.githubusercontent.com/joshschmelzle/lswifi/main/docs/pip_install.gif \"animation showing install of lswifi\")\r\n\r\nUsage\r\n-----\r\n\r\nOutput nearby Wi-Fi networks:\r\n\r\n``` {.sourceCode .bash}\r\n> lswifi\r\n```\r\n\r\nOutput nearby Wi-Fi networks that have a detected signal of `-60 dBm` or stronger:\r\n\r\n``` {.sourceCode .bash}\r\n> lswifi -t -60\r\n```\r\n\r\nOutput only networks that match `my_ssid` (partial match support):\r\n\r\n``` {.sourceCode .bash}\r\n> lswifi -include my_ssid\r\n```\r\n\r\nOutput verbose information (including Information Elements) for BSSID `00:00:00:00:00:00` (exact match):\r\n\r\n``` {.sourceCode .bash}\r\n> lswifi -ies 00:00:00:00:00:00\r\n```\r\n\r\n![alt](https://raw.githubusercontent.com/joshschmelzle/lswifi/main/docs/information_elements.gif \"animation showing printing verbose information for a particular BSSID\")\r\n\r\nPrint help information:\r\n\r\n``` {.sourceCode .bash}\r\n> lswifi -h\r\n```\r\n\r\n![alt](https://raw.githubusercontent.com/joshschmelzle/lswifi/main/docs/help_menu.gif \"animation showing printing help for lswifi\")\r\n\r\nPrint and add detected AP names column in output:\r\n\r\n``` {.sourceCode .bash}\r\n> lswifi --ap-names\r\n```\r\n\r\nPrint and add detected AP names and QBSS column in output (try adding --mfp or --tpc too!):\r\n\r\n``` {.sourceCode .bash}\r\n> lswifi --ap-names --qbss\r\n```\r\n\r\nPrint an alternative table for BSSes which may contain 6 GHz Reduced Neighbor Reports:\r\n\r\n``` {.sourceCode .bash}\r\n> lswifi -rnr\r\n```\r\n\r\nWatch event notifications (inc. roaming, connection, scanning, etc.):\r\n\r\n``` {.sourceCode .bash}\r\n> lswifi --watchevents\r\n```\r\n\r\nCLI options\r\n-----------\r\n\r\n```ascii\r\noptions:\r\n  -h, --help            show this help message and exit\r\n  -version, --version, -V\r\n                        show program's version number and exit\r\n  -n #, --scans #       set how many scans to do before exiting\r\n  --time #              set test in seconds to perform scans for\r\n  -i #, --interval #    seconds between scans\r\n  -ies [BSSID]          print extra information about information elements for a specified BSSID\r\n  -threshold -82, -t -82\r\n                        threshold which excludes networks with weak signal strength from results (-82 is default)\r\n  -all                  remove threshold filtering which excludes results with weaker signal\r\n  -g                    display filter to limit output by 2.4 GHz band\r\n  -a                    display filter to limit output by 5 GHz band\r\n  -six                  display filter to limit output by 6 GHz band\r\n  -include SSID, -inc SSID\r\n                        display filter to limit results by specified SSIDs (partial matching supported)\r\n  -exclude SSID, -exc SSID\r\n                        display filter to exclude results by specified SSIDs (partial matching supported)\r\n  -bssid BSSID          display filter to limit results by specified BSSIDs (partial matching supported)\r\n  --ap-names            adds an ap name column to output and will cache ap names locally to help provide consistent results\r\n  --qbss                adds station and utilization columns to output using information from AP beacon QBSS IE\r\n  --tpc                 adds TPC column to output using information from AP beacon 802.11h\r\n  --mfp, --pmf          adds Protected Management Frame column to output using information from AP beacon RSNE\r\n  --period              adds beacon period column to output using information from AP beacon\r\n  --uptime, -uptime     sort output by access point uptime based on beacon timestamp\r\n  -rnr, --rnr           special mode to create an alternate table based on RNR results\r\n  --channel-width 20|40|80|160\r\n                        display filter to limit output by a specified channel width\r\n  -ethers               adds an ap name column to output and use an ethers file for the ap names\r\n  --append-ethers BSSID,APNAME\r\n                        append BSSID and AP name to ethers file for AP names\r\n  --display-ethers      display the list of saved ethers; (BSSID,APNAME) mapping\r\n  --data-location       displays where config items are stored on the local machine\r\n  -ap                   print the BSSID of the connected AP\r\n  -channel              print the channel of the connected AP\r\n  -raw                  format output as the raw value for other scripts (for -ap and -channel only)\r\n  --get-interfaces      print current Wi-Fi status and information\r\n  --list-interfaces     print a list of available WLAN interfaces\r\n  --json [JSON]         output will be formatted as json\r\n  --indent 4            JSON output will be formatted with pretty print with provided indent level\r\n  --csv [CSV]           output will be formatted as csv\r\n  -export [BSSID], -exp [BSSID]\r\n                        export bss and ies bytefiles. default behavior will export all from a scan. to export only one, provide full mac        \r\n                        address of the BSSID as argument.\r\n  -decode BYTEFILE      decode a raw .BSS or .IES file\r\n  --bytes BSSID         output debugging bytes for a specified BSSID found in scan results.\r\n  --watchevents         a special mode which watches for notification on a wireless interface such as connection and roaming events\r\n  --syslog <server IP>  syslogs events from --watchevents to a remote syslog server\r\n  --debug               increase verbosity for debugging\r\n```\r\n",
    "bugtrack_url": null,
    "license": "BSD 3-Clause License",
    "summary": "a CLI-centric Wi-Fi scanning tool for Windows",
    "version": "0.1.45",
    "project_urls": {
        "Homepage": "https://github.com/joshschmelzle/lswifi"
    },
    "split_keywords": [
        "lswifi",
        " scanner",
        " wireless",
        " wifi",
        " 802.11",
        " wlan",
        " rlan",
        " native wifi",
        " wlanapi"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9049d59e8e09a08354a49b0a146a211467a77d5498c104406db96d682b0623a3",
                "md5": "502885176184f946a8a792280fd520a0",
                "sha256": "e7ab557d548f45bdd115a512d29039fb9c7ee74f30e9349581ac4c5e9fc168c9"
            },
            "downloads": -1,
            "filename": "lswifi-0.1.45-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "502885176184f946a8a792280fd520a0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 81334,
            "upload_time": "2024-07-17T18:45:45",
            "upload_time_iso_8601": "2024-07-17T18:45:45.084383Z",
            "url": "https://files.pythonhosted.org/packages/90/49/d59e8e09a08354a49b0a146a211467a77d5498c104406db96d682b0623a3/lswifi-0.1.45-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5e20f3c6c77bd029bca73e53d8b25e69409241dc87658c7ae8aa27a8bf1fad70",
                "md5": "77f32985deed0228d9dfa7dc263f9a30",
                "sha256": "57c7633903c2b2da6e8b3707149ea52fe0aea083900f81c11783bc59e0b417d3"
            },
            "downloads": -1,
            "filename": "lswifi-0.1.45.tar.gz",
            "has_sig": false,
            "md5_digest": "77f32985deed0228d9dfa7dc263f9a30",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 82043,
            "upload_time": "2024-07-17T18:45:47",
            "upload_time_iso_8601": "2024-07-17T18:45:47.106983Z",
            "url": "https://files.pythonhosted.org/packages/5e/20/f3c6c77bd029bca73e53d8b25e69409241dc87658c7ae8aa27a8bf1fad70/lswifi-0.1.45.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-17 18:45:47",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "joshschmelzle",
    "github_project": "lswifi",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "tox": true,
    "lcname": "lswifi"
}
        
Elapsed time: 0.29546s