Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

400 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kawaiifi

crates.io NuGet docs.rs CI License: MIT or Apache-2.0

kawaiifi is a Wi-Fi scanning toolkit for Linux, macOS, and Windows.

It discovers local Basic Service Sets (BSSs) and reports their SSID, BSSID, signal strength, channel, channel width, security protocols, and information elements (IEs).

Repository

This repository contains:

Platform Support

kawaiifi uses each platform's built-in Wi-Fi API:

Platform API
Linux NetworkManager and nl80211 (Netlink)
macOS CoreWLAN
Windows Native Wifi (Win32)

Troubleshooting

Wi-Fi scanning is often restricted by operating systems because nearby BSS data can be used to determine physical location and other sensitive information.

Linux

kawaiifi uses nl80211 to enumerate Wi-Fi interfaces and retrieve scan results. It uses NetworkManager to trigger scans, which avoids requiring root privileges or the CAP_NET_ADMIN capability.

Sandboxed packages may need additional permissions to use both nl80211 and NetworkManager. For example, Snap packages require the network-control interface for nl80211 and the network-manager interface for NetworkManager.

macOS

Scanning via CoreWLAN uses CWInterface.scanForNetworks. If location services are not enabled for the application, SSIDs, BSSIDs, and information element data may be unavailable. Enable location services for your application in System Settings → Privacy & Security → Location Services.

The command-line examples in this repository are not packaged as identified macOS applications and do not request location authorization. When run from a terminal, their scan results therefore have unavailable SSIDs, BSSIDs, and information element lists.

Windows

Scanning via Native Wifi uses WlanScan and WlanGetNetworkBssList. The first time an application calls these APIs, Windows displays a one-time prompt for precise location access. If the user does not grant consent, scans fail with ERROR_ACCESS_DENIED.

Changelog

See CHANGELOG.md for release notes.

License

Dual-licensed under MIT or Apache 2.0.

About

Wi-Fi scanning for Linux, macOS, and Windows

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages