Analyses IEEE802.11 probe request frames to approximate attendance
This project is written in Python 3 and depends on the following:
requests
- Use the Airport CLI, found at
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
- Dissociate interface from any AP with
airport -z
- Capture link-level 802.11 frames with
airport en0 sniff
(whereen0
is most likely your wireless interface - check withifconfig
) - Analyse captured binary frames for Probe Request packets using
tcpdump -s 24 -e -r /tmp/airportSniffxxxxx.cap type mgt subtype probe-req
Alternately, once dissociated from an AP, run tcpdump -s 256 -e -p -Ini en0 type mgt subtype probe-req
and it will dump captured frames to stdout.
It's important to first confirm both the physical device layer and driver support monitor mode (specifically capturing management probe request frames).
Something like iw list
should do it.
- Create a new wireless interface in monitor mode and delete the managed mode interface
- Bring the new monitor interface up and select a channel (or cycle through channels)
- Run tcpdump to capture Probe Request Management frames
Once we've established which OS the monitor is to be deployed on, it's a matter of having a Python script run a
data frame capture in monitor mode for some interval of time, parse the results of tcpdump
, set the interface back up
to managed mode on an AP, and push a data update to the Litmus API server.
A related project: schollz/find-lf