{ "info": { "author": "Stefan Marsiske", "author_email": "s@ctrlc.hu", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)" ], "description": "# wireless-radar\n\nwireless-radar comes with a few tools:\n - wprox a scanner for detecting/fingerprinting active 802.11 devices\n - mrssi a simple RSSI sensor locking onto a MAC for physically locating the device\n - wscan a direction-finder using a directional antenna mounted on a usb rocket launcher\n - bprox a Bluetooth device discoverer\n - rfdiff to diff the outputs of wprox scans\n\n## Installation\n\n pip install wireless-radar\n\nSince wireless-radar tools involve manipulating network devices and\nsetting promiscuous mode, these need to be either run as root, or you\ncan create a copy of your python executable and set capabilities to\nenable sniffing for user accounts in your virtual environment:\n\n setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' env/bin/python2\n\n## wprox\n\nwprox sniffs on every channel as long as no new devices are found for\na preset amount of time. wproxy gathers clients trying to discover,\nconnect to, or communicating with APs, and APs advertising themselves\nor communicating with clients. It also collects the ESSIDS of access\npoints the clients try to connect to (affects mostly Apple products).\n\n![screenshot of wprox output](wprox.png)\n\nUsing wprox it is possible to have a more granular look into all\nchannels and their users. It allows for selecting a more quiet channel\nfor your own network, discovering less congested access points at\nconferences, and generally map the wifi spectrum.\n\nwprox has the following dependencies which are automatically handled\nby the setup script:\n\n scapy netaddr git+https://github.com/pingflood/pythonwifi.git\n\nbefore you run, you must set your wlan device to monitor mode:\n\n iwconfig wlan0 mode monitor\n\nalternatively you can also create a seperate monitor device using:\n\n airmon-ng start wlan0\n ifconfig wlan0 down\n\nyou can then run wproxy like this:\n\n ./wprox.py \n\nreplacing with wlan0 or mon0 depending on your setup.\n\nshould result in output like this:\n```\ntyp AP SSID* MAC vendor channels cnt max min avg sp rssi flg attempts\nAP 'TP-LINK_ffffff' ff:ff:ff:ff:ff:ff TP-LINK TECHNOLOGIES [3-7,9,11 ] 3511 -36 -80 -40 44 [\u2588\u2588\u2588 ]\n ff:ff:ff:ff:ff:ff Apple, Inc. [6 ] 15 -73 -100 -84 27 [\u258a ] 'TP-LINK_ffffff'\nAP 'WifiZone1234567' ff:ff:ff:ff:ff:ff Routerboard.com [11 ] 178 -90 -94 -92 4 [\u2588\u258c ]\nCL ff:ff:ff:ff:ff:ff Samsung Electronics [3,9 ] 12 -81 -90 -89 9 [\u2588\u2588\u258b ] 'ap1', ''\n```\n\nwhere the first column denotes\n - AP for access points\n - nothing for associated clients\n - CL for non-associated clients\n - NA for unknown roles\n\nfor APs this is followed by the AP ESSID, and then for all device types\n - the MAC,\n - the vendor according to the MAC,\n - a list of channels this device has been observed,\n - the number of packets counted\n - strongest signal,\n - weakest signal,\n - average signal,\n - difference between strongest and weakest signal,\n - 5 char graphical signal strength indicator.\n - optional flags (C= wireless camera, D=drone)\n\nFor client devices this is followed by a list of ESSIDs the device\ntried to associate with.\n\nWhile wprox is running it dumps the found devices to stderr every 1\nsecond if there's some traffic on the chan. At the end wproxy outputs\nall devices again, but this time to stdout so you can save one copy in\na file.\n\n## mrssi\n\nmrssi allows you to lock onto one specific MAC address on a specific\nchannel and shows you the signal strength with a bargraph and a\nhistogram of the signal strength over the last 40 seconds:\n\n```\n./mrssi.py mon0 01:23:45:ff:ff:ff 6\nWARNING: Failed to execute tcpdump. Check it is installed and in the PATH\nWARNING: No route found for IPv6 destination :: (no default route?)\nlooking for 01:23:45:ff:ff:ff on mon0 chan: 6 (2.437GHz)\n-75 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258b | -79 \u2583\u2583\u2582\u2582\u2582\u2582\u2582\u2581\u2581\u2581\u2581\u2582\u2584\u2584\u2584\u2583\u2584\u2584\u2583\u2586\u2585\u2585\u2584\u2585\u2585\u2582\u2586\u2587\u2585\u2585\u2586\u2585\u2585\u2585\u2584\u2584\u2583\u2582\u2581\u2581 -52\n```\n\n## wscan\nrun with::\n\n ./wscan.py | tee logs/home-$(date '+%s').log | ./wscan.py load\n\nor tracking a specific AP:\n\n ./wscan.py 00:00:00:00:00:00 | tee logs/home-$(date '+%s').log | ./wscan.py load\n\nthis gives you realtime feedback on RSSI strength for a given BSSID.\n\nThe 1st invocation of wscan drives the rocket-launcher mounted antenna to do 2 full scans left-right and back, this outputs a log of seen APs in this format:\n\n x y timestamp bssid rssi essid\n\nso in theory if you can produce a similar output, you don't need the 1st invocation and also no rocket launcher. You can also replay earlier scans, or combine multiple scans into one, etc.\n\nIn any case you get this output, where the colums are the following:\n\n - sparkline of avg RSSI in directions from 0 to 340 deg\n - x direction of strongest RSSI signal\n - y direction of strongest RSSI signal\n - timestamp\n - [omitted] BSSID of AP\n - strongest RSSI signal\n - [omitted] ESSID of AP\n\n```\n|\u2588\u2583\u2581\u2585\u2583\u2583 | 200 0 2012-02-04T03:45:24 -91\n|\u2584\u2584\u2584\u2584\u2584\u2584 \u2584\u2588 \u2588 \u2584 \u2584\u2584\u2584\u2584| 300 0 2012-02-04T03:29:46 -89\n|\u2586\u2586\u2586\u2582\u2582\u2582 \u2584\u2588\u2586\u2584\u2584\u2584\u2588\u2584\u2584\u2584\u2582\u2584\u2582| 400 0 2012-02-04T03:22:53 -87\n|\u2583\u2584\u2586\u2587\u2587\u2588\u2587\u2587\u2583\u2583\u2583\u2583\u2586\u2587\u2587\u2586\u2584\u2583\u2581 | 400 0 2012-02-04T03:45:09 -81\n|\u2584\u2586\u2587\u2588\u2588\u2587\u2586\u2586\u2583\u2587 \u2587\u2587 \u2584\u2583\u2583\u2584\u2583\u2581| 600 0 2012-02-04T02:40:47 -85\n| \u2588\u2581 \u2583\u2583\u2583 | 700 0 2012-02-04T03:30:14 -89\n|\u2587\u2588\u2585\u2583\u2587\u2588\u2588\u2587\u2583\u2581\u2587\u2588\u2587\u2587\u2583\u2581\u2581\u2581\u2581 | 800 0 2012-02-04T03:44:41 -81\n|\u2583\u2583\u2586\u2586\u2588\u2588\u2588\u2588\u2586\u2588 | 800 0 2012-02-04T02:30:33 -89\n| \u2588\u2584\u2584\u2584 | 800 0 2012-02-04T02:36:19 -93\n| \u2583\u2588 | 800 0 2012-02-04T02:36:17 -93\n|\u2581\u2584\u2584\u2584\u2586\u2588\u2588\u2588\u2587\u2586\u2584\u2583\u2583\u2584\u2583\u2583\u2581\u2581 \u2581| 800 0 2012-02-04T02:36:17 -87\n|\u2583\u2585\u2586\u2587\u2587\u2587\u2587\u2587\u2587\u2585\u2585\u2585\u2587\u2588\u2587\u2585\u2583\u2583\u2581 | 800 0 2012-02-04T02:40:56 -83\n| \u2586\u2586\u2585\u2583\u2583 \u2586\u2587\u2588\u2586\u2586\u2583\u2582\u2582\u2581\u2581\u2581| 900 0 2012-02-04T03:30:31 -91\n| \u2583\u2583 \u2588\u2588 | 900 0 2012-02-04T02:30:41 -93\n| \u2581\u2584\u2587\u2588\u2588\u2588\u2588\u2585\u2584\u2583\u2582\u2583\u2584\u2586\u2587\u2588\u2588\u2586\u2584| 900 0 2012-02-04T02:36:24 -77\n|\u2583\u2582\u2584\u2587\u2587\u2588\u2588\u2586\u2584\u2583\u2582\u2582\u2582\u2583\u2582\u2582 | 1000 0 2012-02-04T03:30:35 -79\n| \u2584\u2588\u2584\u2584 | 1000 0 2012-02-04T03:38:54 -91\n|\u2583\u2583\u2583\u2588\u2586\u2588\u2588\u2588\u2588\u2586 \u2583\u2583\u2583\u2583\u2583\u2583\u2586\u2583| 1000 0 2012-02-04T02:55:26 -89\n|\u2586\u2583\u2586\u2583\u2586\u2588\u2588\u2588\u2586\u2586\u2586\u2588\u2583\u2583 \u2583\u2583\u2586\u2588 | 1000 0 2012-02-04T02:36:33 -89\n| \u2584\u2585\u2586\u2586\u2586\u2584\u2584\u2585\u2586\u2588\u2584\u2583\u2584\u2582\u2581 | 1000 0 2012-02-04T03:52:56 -87\n| \u2583\u2587\u2588\u2588\u2588\u2587\u2585\u2585\u2587\u2585\u2585\u2583\u2583\u2585\u2587\u2587\u2587\u2585| 1000 0 2012-02-04T02:41:10 -79\n|\u2583 \u2581\u2581\u2584\u2587\u2587\u2586\u2583\u2584\u2584\u2584\u2584\u2586\u2584\u2588 \u2581| 1000 0 2012-02-04T02:30:48 -87\n| \u2586\u2584\u2586\u2587\u2588\u2588\u2587\u2587 \u2581| 1000 0 2012-02-04T02:36:33 -85\n| \u2588\u2584\u2582\u2582\u2584\u2584 | 1000 0 2012-02-04T02:36:32 -91\n| \u2585\u2584\u2584\u2585\u2587\u2588\u2588\u2588\u2587\u2585\u2584\u2584\u2584\u2583\u2583\u2581\u2582\u2582| 1000 0 2012-02-04T02:36:30 -83\n|\u2581\u2582\u2581\u2582\u2584\u2585\u2587\u2587\u2587\u2588\u2588\u2588\u2586\u2584\u2584\u2584\u2582\u2582 \u2584| 1100 0 2012-02-04T02:30:57 -81\n|\u2583\u2582\u2581\u2583\u2585\u2586\u2587\u2587\u2588\u2587\u2586\u2585\u2585\u2583\u2583\u2582\u2583 \u2582| 1100 0 2012-02-04T02:30:53 -87\n| \u2588\u2588\u2588\u2588 | 1100 0 2012-02-04T03:23:41 -91\n|\u2586\u2585\u2584\u2582\u2583\u2586\u2588\u2588\u2588\u2584\u2582\u2584\u2587\u2587\u2587\u2583\u2581 | 1100 0 2012-02-04T02:30:54 -75\n| \u2588\u2588 | 1100 0 2012-02-04T03:53:02 -95\n| \u2584\u2586\u2587\u2588\u2588\u2587\u2586\u2586\u2583\u2581\u2586 | 1100 0 2012-02-04T02:36:36 -87\n| \u2584\u2584\u2584\u2584\u2584\u2582\u2586\u2588 | 1100 0 2012-02-04T02:30:57 -91\n| \u2584\u2588 | 1100 0 2012-02-04T03:30:44 -93\n| \u2581\u2583\u2585\u2586\u2587\u2588\u2588\u2588\u2588\u2587\u2586\u2584\u2582\u2581 \u2581| 1100 0 2012-02-04T02:30:57 -75\n|\u2583\u2581\u2581\u2583\u2583\u2585\u2587\u2587\u2588\u2588\u2588\u2587\u2587\u2585\u2585\u2583\u2583\u2581\u2581 | 1200 0 2012-02-04T02:31:01 -87\n| \u2587\u2587\u2588\u2588\u2588\u2587\u2585 \u2581\u2581 | 1200 0 2012-02-04T03:15:52 -87\n| \u2581\u2581\u2585\u2585\u2585\u2585\u2586\u2588 \u2583\u2583\u2583\u2583 | 1200 0 2012-02-04T02:30:59 -91\n| \u2583\u2586\u2585\u2586\u2587\u2587\u2587\u2587\u2586\u2586\u2586\u2587\u2588\u2587\u2587\u2585\u2581 | 1200 0 2012-02-04T02:47:28 -87\n|\u2583\u2582\u2582\u2585\u2586\u2586\u2588\u2588\u2588\u2587\u2587\u2587\u2587\u2587\u2585\u2585\u2582\u2582 \u2582| 1200 0 2012-02-04T03:58:13 -83\n| \u2581 \u2581\u2584\u2587\u2588\u2588\u2588\u2587\u2586\u2584\u2583\u2581 \u2581\u2584\u2584| 1200 0 2012-02-04T02:30:59 -75\n| \u2581\u2581\u2583\u2585\u2585\u2583\u2585\u2581\u2581\u2587\u2588 | 1200 0 2012-02-04T02:36:46 -89\n|\u2581\u2583\u2585\u2585\u2587\u2587\u2588\u2588\u2587\u2587\u2588\u2588\u2587\u2585 | 1300 0 2012-02-04T02:31:10 -87\n| \u2583\u2585\u2587\u2588\u2588\u2588\u2588\u2587\u2585\u2585\u2581\u2581 | 1300 0 2012-02-04T02:31:11 -87\n| \u2588\u2588 | 1300 0 2012-02-04T03:53:17 -95\n| \u2581\u2583\u2586\u2587\u2587\u2588\u2588\u2588\u2587\u2584\u2581\u2581\u2582\u2582\u2582\u2581 | 1300 0 2012-02-04T02:36:54 -73\n| \u2585\u2585\u2587\u2588\u2588\u2588\u2587\u2585\u2585\u2581\u2581\u2583\u2583\u2583\u2583\u2583| 1300 0 2012-02-04T03:44:06 -85\n|\u2582\u2583\u2584\u2585\u2585\u2584\u2584\u2585\u2585\u2587\u2587\u2587\u2588\u2587\u2587\u2585\u2583\u2581\u2581 | 1400 0 2012-02-04T02:41:40 -79\n| \u2588\u2588 | 1400 0 2012-02-04T02:37:01 -91\n| \u2588\u2588 | 1400 0 2012-02-04T02:36:59 -97\n| \u2588\u2588\u2586\u2583 | 1400 0 2012-02-04T02:41:39 -91\n|\u2581\u2581\u2581\u2581\u2584\u2586\u2587\u2587\u2588\u2588\u2587\u2588\u2586\u2586\u2584\u2586\u2583\u2583 | 1400 0 2012-02-04T02:55:51 -85\n| \u2583\u2588\u2588\u2588\u2586\u2586\u2586\u2583 | 1400 0 2012-02-04T02:37:00 -87\n| \u2583\u2583\u2583\u2586\u2586\u2588\u2586\u2583 | 1400 0 2012-02-04T02:41:37 -89\n| \u2588\u2588\u2588\u2588 | 1400 0 2012-02-04T02:41:38 -93\n| \u2584\u2584\u2586\u2588\u2588\u2586\u2584\u2586\u2582\u2582\u2582 | 1400 0 2012-02-04T02:41:39 -85\n|\u2582\u2582\u2582\u2582\u2582\u2584\u2586\u2586\u2588\u2588\u2588\u2588\u2586\u2584\u2582 \u2582| 1400 0 2012-02-04T02:31:16 -85\n|\u2583\u2584\u2581\u2583\u2584\u2584\u2584\u2586\u2588\u2588\u2588\u2588\u2586\u2585\u2584\u2583\u2583\u2582 \u2583| 1500 0 2012-02-04T02:37:08 -83\n|\u2581\u2581 \u2581\u2582\u2584\u2585\u2588\u2588\u2588\u2588\u2585\u2584\u2584\u2584\u2582\u2581 | 1500 0 2012-02-04T02:41:47 -77\n| \u2588\u2588 | 1500 0 2012-02-04T02:47:49 -95\n| \u2581\u2583\u2585\u2587\u2587\u2587\u2587\u2587\u2587\u2585\u2585\u2588 | 1500 0 2012-02-04T03:53:29 -87\n| \u2588\u2584 | 1500 0 2012-02-04T02:31:20 -93\n| \u2584\u2584\u2588 | 1500 0 2012-02-04T03:31:10 -93\n| \u2588\u2585\u2581\u2581 | 1500 0 2012-02-04T03:39:31 -91\n|\u2581\u2581 \u2583\u2584\u2584\u2586\u2588\u2588\u2588\u2588\u2588\u2587\u2586\u2584\u2583\u2582\u2583 | 1500 0 2012-02-04T02:47:48 -79\n| \u2586\u2586\u2586\u2588\u2586\u2586\u2583 | 1500 0 2012-02-04T02:37:05 -87\n|\u2581\u2582 \u2584\u2582\u2583\u2585\u2587\u2588\u2588\u2588\u2587\u2585\u2584\u2584\u2584\u2584 | 1500 0 2012-02-04T02:55:58 -83\n| \u2583\u2583\u2581\u2583\u2583\u2585\u2585\u2587\u2587\u2588\u2588\u2587\u2585\u2583 | 1600 0 2012-02-04T02:37:11 -89\n| \u2583\u2584\u2584\u2586\u2587\u2588\u2588\u2587\u2585\u2584\u2582\u2582 \u2583\u2581| 1600 0 2012-02-04T03:24:15 -79\n|\u2581\u2581 \u2581\u2582\u2583\u2584\u2587\u2588\u2587\u2586\u2586\u2584\u2583\u2582\u2582\u2581\u2583| 1600 0 2012-02-04T03:24:14 -83\n|\u2585\u2585\u2585\u2585\u2584\u2584 \u2588\u2587\u2586\u2586\u2586\u2586\u2586\u2585\u2584\u2584\u2582\u2582\u2581| 1600 0 2012-02-04T03:24:13 -87\n|\u2584\u2584\u2583\u2583\u2584\u2586\u2587\u2587\u2588\u2588\u2587\u2587\u2586\u2586\u2583\u2581 | 1600 0 2012-02-04T02:56:07 -85\n| \u2583\u2581\u2587\u2588\u2587 | 1600 0 2012-02-04T02:56:04 -91\n| \u2581\u2581\u2586\u2586\u2587\u2588\u2586\u2586\u2586\u2586\u2586\u2586\u2583\u2584\u2584| 1600 0 2012-02-04T03:24:15 -87\n| \u2587\u2588\u2587\u2587\u2587\u2586\u2584\u2586\u2583\u2581 | 1700 0 2012-02-04T02:37:17 -87\n|\u2583\u2583 \u2581\u2581\u2583\u2584\u2585\u2585\u2585\u2586\u2587\u2586\u2585\u2583\u2588\u2585\u2587\u2584\u2583| 1700 0 2012-02-04T03:16:28 -87\n|\u2581\u2581\u2582 \u2582\u2583\u2585\u2586\u2588\u2588\u2588\u2588\u2586\u2585\u2583\u2582\u2581\u2581\u2582\u2581| 1700 0 2012-02-04T03:53:40 -77\n| \u2588\u2588 | 1700 0 2012-02-04T03:57:39 -93\n| \u2581\u2581\u2583\u2585\u2587\u2588\u2585\u2585\u2581\u2581\u2583 | 1700 0 2012-02-04T03:24:23 -87\n|\u2585\u2585\u2585\u2585\u2585\u2585\u2585\u2586\u2587\u2588\u2588\u2588\u2586\u2584\u2582 \u2583\u2583| 1700 0 2012-02-04T02:31:33 -61\n| \u2588\u2588 \u2588\u2584\u2586\u2586\u2588\u2584\u2584\u2582\u2582\u2584\u2584\u2582| 1700 0 2012-02-04T02:41:57 -89\n|\u2584\u2583\u2582\u2583\u2582\u2582\u2583\u2585\u2587\u2588\u2588\u2588\u2588\u2587\u2586\u2584\u2583\u2582\u2583 | 1800 0 2012-02-04T03:24:26 -83\n| \u2584\u2584\u2584\u2584\u2588 | 1800 0 2012-02-04T03:43:36 -89\n| \u2582\u2582\u2584\u2588\u2588\u2588\u2588\u2588\u2586\u2582\u2584\u2586\u2586 | 1800 0 2012-02-04T03:39:52 -87\n| \u2585\u2587\u2587\u2587\u2588\u2588\u2587\u2585\u2585\u2585\u2585\u2585\u2581 | 1800 0 2012-02-04T02:42:06 -91\n|\u2586\u2586\u2583\u2582\u2584\u2587\u2588\u2587\u2585\u2585\u2587\u2587\u2585\u2583\u2581 \u2581\u2581\u2582\u2583| 1800 0 2012-02-04T03:16:34 -81\n| \u2588\u2587\u2581\u2585\u2585\u2581\u2583\u2585 | 1800 0 2012-02-04T02:31:40 -91\n| \u2581\u2581\u2581\u2581\u2582\u2585\u2587\u2588\u2588\u2588\u2588\u2587\u2585\u2583\u2582\u2582\u2583| 1800 0 2012-02-04T02:31:41 -71\n|\u2581\u2581 \u2585\u2585 \u2585\u2587\u2588\u2588\u2588\u2588 | 1800 0 2012-02-04T02:31:41 -91\n| \u2583\u2583\u2588\u2588\u2588\u2588 | 1800 0 2012-02-04T02:37:28 -93\n| \u2583\u2583\u2581\u2581\u2583\u2585\u2587\u2587\u2588\u2588\u2587\u2588\u2587\u2583\u2581\u2581\u2581\u2581| 1900 0 2012-02-04T03:31:38 -85\n| \u2583\u2586\u2588 | 1900 0 2012-02-04T02:37:31 -91\n|\u2581 \u2581\u2582\u2583\u2583\u2581\u2582\u2585\u2587\u2588\u2588\u2587\u2586\u2583 \u2581| 1900 0 2012-02-04T02:56:27 -73\n| \u2586\u2586\u2583\u2583\u2583\u2586\u2586\u2588\u2583 | 1900 0 2012-02-04T02:42:14 -89\n|\u2582\u2582\u2581\u2581\u2581 \u2583\u2585\u2585\u2585\u2586\u2588\u2587\u2587\u2585\u2583\u2582\u2581\u2583\u2581| 1900 0 2012-02-04T02:48:14 -85\n| \u2584\u2586\u2587\u2588\u2588\u2587\u2586\u2583\u2581\u2581 | 1900 0 2012-02-04T02:56:25 -85\n| \u2588\u2586\u2583 \u2583\u2583\u2583 | 1900 0 2012-02-04T03:39:55 -95\n| \u2581\u2581\u2586\u2587\u2587\u2587\u2588\u2588\u2587\u2586\u2586\u2586\u2584\u2584\u2587| 1900 0 2012-02-04T02:48:15 -87\n| \u2588\u2586\u2583\u2583 | 1900 0 2012-02-04T02:42:13 -93\n| \u2588\u2586\u2583 | 2000 0 2012-02-04T03:57:16 -91\n| \u2581\u2581\u2581 \u2582\u2584\u2587\u2588\u2588\u2587\u2584\u2581 | 2000 0 2012-02-04T03:16:46 -73\n|\u2586\u2584\u2583\u2581 \u2583\u2581\u2581\u2584\u2586\u2586\u2586\u2588\u2587\u2586\u2581\u2581\u2584\u2586\u2588| 2000 0 2012-02-04T02:56:32 -83\n|\u2586\u2586 \u2581\u2583\u2586\u2586\u2587\u2588\u2588\u2588\u2587\u2587\u2586\u2584\u2583\u2581\u2583\u2586| 2000 0 2012-02-04T02:31:54 -87\n|\u2581\u2582 \u2581\u2583\u2584\u2587\u2588\u2588\u2588\u2588\u2588\u2586\u2585\u2583\u2581 | 2000 0 2012-02-04T02:56:35 -79\n| \u2586\u2588\u2586\u2583\u2586\u2583\u2586 | 2100 0 2012-02-04T02:42:29 -91\n|\u2581\u2583\u2582\u2582\u2582\u2583\u2584\u2584\u2586\u2587\u2588\u2588\u2588\u2588\u2587\u2586\u2583\u2581 | 2100 0 2012-02-04T03:31:50 -73\n| \u2583\u2585\u2583\u2585\u2585\u2585\u2587\u2588\u2585\u2587\u2588\u2588\u2587\u2583\u2585\u2585\u2583\u2583| 2100 0 2012-02-04T02:37:45 -89\n| \u2588\u2588 | 2100 0 2012-02-04T03:24:51 -91\n| \u2583\u2583\u2581\u2581\u2581 \u2588\u2588\u2587\u2585\u2585\u2583\u2585\u2588 | 2100 0 2012-02-04T03:43:11 -87\n|\u2583 \u2586\u2586\u2586\u2583\u2583 \u2586\u2583\u2583\u2586\u2588\u2588\u2586\u2586\u2583 \u2583| 2100 0 2012-02-04T03:43:11 -89\n| \u2581\u2581\u2583\u2581\u2584\u2584\u2586\u2586\u2588\u2588\u2588\u2586\u2584\u2584\u2583\u2583\u2583\u2584| 2100 0 2012-02-04T02:32:02 -87\n| \u2581\u2581\u2583\u2586\u2586\u2588\u2588\u2587\u2586\u2586\u2581\u2581 | 2100 0 2012-02-04T02:48:29 -83\n|\u2584\u2583 \u2583\u2584\u2584\u2584\u2584\u2586\u2586\u2586\u2587\u2588\u2587\u2586\u2586\u2584\u2583\u2583| 2100 0 2012-02-04T03:24:48 -87\n| \u2582\u2582\u2586\u2586\u2588\u2586 | 2100 0 2012-02-04T02:42:29 -91\n| \u2588\u2588\u2588 | 2200 0 2012-02-04T03:31:56 -95\n|\u2582\u2582\u2581 \u2582\u2584\u2584\u2583\u2582\u2584\u2586\u2588\u2588\u2588\u2588\u2587\u2585\u2582 | 2200 0 2012-02-04T03:57:04 -71\n| \u2585\u2585 \u2585\u2585\u2585\u2585\u2585\u2586\u2588\u2585\u2586\u2583\u2581 \u2583| 2200 0 2012-02-04T02:32:09 -85\n| \u2588\u2588 | 2200 0 2012-02-04T03:57:06 -95\n| \u2585\u2581\u2581 \u2588\u2585\u2583\u2583\u2581\u2581\u2581 | 2300 0 2012-02-04T02:32:18 -91\n|\u2583\u2582\u2582\u2583\u2584\u2583\u2581 \u2582\u2585\u2587\u2588\u2588\u2588\u2588\u2586\u2583\u2582\u2583\u2586| 2300 0 2012-02-04T02:42:42 -71\n|\u2586 \u2583\u2586\u2587\u2586\u2586\u2587\u2587\u2586\u2586\u2587\u2587\u2587\u2586\u2584\u2584\u2584\u2588\u2584| 2300 0 2012-02-04T02:48:41 -85\n| \u2588\u2584\u2584\u2588\u2588 | 2300 0 2012-02-04T02:32:18 -91\n| \u2583\u2583\u2581\u2583\u2585\u2585\u2585\u2587\u2585\u2585\u2587\u2588\u2588\u2587\u2585\u2583\u2583 | 2300 0 2012-02-04T03:40:25 -89\n|\u2581\u2583\u2583\u2583\u2583\u2581\u2581\u2583\u2581\u2583\u2583\u2587\u2587\u2588\u2587\u2583\u2581 \u2581\u2583| 2300 0 2012-02-04T02:32:15 -85\n| \u2588\u2588\u2588\u2586\u2583\u2588\u2586 | 2300 0 2012-02-04T02:37:59 -91\n| \u2588\u2588 | 2300 0 2012-02-04T03:25:05 -95\n|\u2583\u2583\u2583\u2584\u2583\u2583\u2583\u2585\u2585\u2587\u2587\u2588\u2588\u2587\u2587\u2585\u2585\u2584\u2581 | 2400 0 2012-02-04T03:17:16 -85\n| \u2588\u2588 | 2400 0 2012-02-04T03:32:10 -93\n| \u2586\u2586\u2586\u2588\u2586\u2586\u2584\u2584\u2582\u2582\u2582\u2582| 2400 0 2012-02-04T02:32:21 -89\n| \u2582\u2586\u2586\u2584\u2582\u2582\u2582\u2584\u2584\u2586\u2584\u2584\u2586\u2588\u2588\u2586\u2584 | 2500 0 2012-02-04T03:40:40 -83\n| \u2581\u2583\u2585 \u2588\u2587\u2587\u2588\u2588\u2588\u2588\u2588\u2587\u2585\u2585\u2585\u2585| 2600 0 2012-02-04T02:49:04 -87\n|\u2583\u2583\u2583\u2582\u2583\u2583\u2582 \u2586\u2586\u2586\u2587\u2587\u2587\u2588\u2586\u2586\u2585\u2583\u2582| 2900 0 2012-02-04T02:43:23 -85\n|\u2584\u2584\u2583\u2584\u2583\u2583\u2583 \u2584\u2585\u2587\u2586\u2587\u2587\u2588\u2588\u2588\u2586| 2900 0 2012-02-04T03:17:50 -59\n| \u2583\u2588\u2588 \u2583\u2586\u2586\u2588\u2588\u2586\u2583\u2586\u2583\u2583\u2586\u2586\u2586\u2583| 3400 0 2012-02-04T02:49:55 -85\n```\n\n## bprox\n\nbprox listens for bluetooth devices in your vicinity and reports them\nback. bprox depends on pybluez which is automatically handled by the\nsetup script.\n\nthe output contains the MAC address, the RSSI, the device class in\nhex, the device name, the device type, the advertised services, and\nthe json representation of an SDP query of the device.\n\n\n```\npython bprox.py\n01:23:45:67:89:ab -52 5a0204 'bluetooth enabled phone' phone object transfer service|networking service|capturing service|telephony service [{'protocol': 'L2CAP', 'name': 'AV remote control', 'service-id': None, 'profiles': [('110E', 256)], 'service-classes': ['110C'], 'host': '01:23:45:67:89:ab', 'provider': 'SAMSUNG', 'port': 23, 'description': None}, {'protocol': 'RFCOMM', 'name': 'Voice GW', 'service-id': None, 'profiles': [('00001108', 257)], 'service-classes': ['1112', '1203'], 'host': '01:23:45:67:89:ab', 'provider': None, 'port': 2, 'description': None}, {'protocol': 'RFCOMM', 'name': 'Serial Port', 'service-id': None, 'profiles': [], 'service-classes': ['1101'], 'host': '01:23:45:67:89:ab', 'provider': None, 'port': 4, 'description': None}, {'protocol': 'RFCOMM', 'name': 'Dial-up networking', 'service-id': None, 'profiles': [('00001103', 256)], 'service-classes': ['00001103'], 'host': '01:23:45:67:89:ab', 'provider': None, 'port': 1, 'description': None}, {'protocol': 'L2CAP', 'name': 'Audio/Video Service', 'service-id': None, 'profiles': [('110D', 258)], 'service-classes': ['110A'], 'host': '01:23:45:67:89:ab', 'provider': 'SAMSUNG', 'port': 25, 'description': None}, {'protocol': 'RFCOMM', 'name': 'SIM Access', 'service-id': None, 'profiles': [('112D', 258)], 'service-classes': ['112D', '1204'], 'host': '01:23:45:67:89:ab', 'provider': None, 'port': 3, 'description': None}, {'protocol': 'RFCOMM', 'name': 'Voice gateway', 'service-id': None, 'profiles': [('111E', 261)], 'service-classes': ['111F', '1203'], 'host': '01:23:45:67:89:ab', 'provider': None, 'port': 6, 'description': None}, {'protocol': 'RFCOMM', 'name': 'OPP', 'service-id': None, 'profiles': [('1105', 256)], 'service-classes': ['1105'], 'host': '01:23:45:67:89:ab', 'provider': None, 'port': 8, 'description': None}, {'protocol': 'RFCOMM', 'name': 'OBEX FileTransfer', 'service-id': None, 'profiles': [('1106', 258)], 'service-classes': ['1106'], 'host': '01:23:45:67:89:ab', 'provider': None, 'port': 9, 'description': None}, {'protocol': 'RFCOMM', 'name': 'Phonebook Access PSE', 'service-id': None, 'profiles': [('1130', 256)], 'service-classes': ['112F'], 'host': '01:23:45:67:89:ab', 'provider': None, 'port': 10, 'description': None}]\n```\n\n## rfdiff\n\nrfdiff takes two output files from wprox and compares them while\nignoring insignificant differences, see the source.\n\nto run consecutive wproxy scans with a diff to the previous scan can be achieved by:\n```\nprev=logs/w$(ls logs/w* | tail -1 | cut -dw -f2); date=$(date +%Y%m%d%H%M); python wprox.py mon0 >logs/w$date ; ./rfdiff.py $prev logs/w$date\n```\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/stef/wireless-radar", "keywords": "802.11 wireless wifi scanning direction-finding", "license": "AGPLv3", "maintainer": "", "maintainer_email": "", "name": "wireless-radar", "package_url": "https://pypi.org/project/wireless-radar/", "platform": "", "project_url": "https://pypi.org/project/wireless-radar/", "project_urls": { "Homepage": "https://github.com/stef/wireless-radar" }, "release_url": "https://pypi.org/project/wireless-radar/0.2.3.1/", "requires_dist": null, "requires_python": "", "summary": "various tools to map the wireless environment", "version": "0.2.3.1" }, "last_serial": 4900069, "releases": { "0.2": [ { "comment_text": "", "digests": { "md5": "73ad8ce5420f6ff6141838c131aed61c", "sha256": "cdedb9dc0664a1ce334ddbfba3b9da9462387e05a6b71da8fba82d458cbdc8e4" }, "downloads": -1, "filename": "wireless_radar-0.2-py2.7.egg", "has_sig": false, "md5_digest": "73ad8ce5420f6ff6141838c131aed61c", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 44721, "upload_time": "2014-08-17T01:43:30", "url": "https://files.pythonhosted.org/packages/b0/76/873890dd60c6314e103e2e5c6ef45f45a45442877cefb9aeab1815eba3ce/wireless_radar-0.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "c903b8955dc971cb326a0d31b3ff8f87", "sha256": "3284f59672347b481e312440784cd83d28c07d85417edf9e42142004ad040ead" }, "downloads": -1, "filename": "wireless-radar-0.2.tar.gz", "has_sig": false, "md5_digest": "c903b8955dc971cb326a0d31b3ff8f87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25228, "upload_time": "2014-08-17T01:43:11", "url": "https://files.pythonhosted.org/packages/d3/57/552ebc222d35cc0f04712c9904032ec40bf628c1deb30c277a6f499bed23/wireless-radar-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "4fb3e097948945c0ac5b391b03d80d17", "sha256": "d00e2096855a9e1ea6222bd8d9541a887224744c492e126be6dfb7ec6354271a" }, "downloads": -1, "filename": "wireless_radar-0.2.1-py2.7.egg", "has_sig": true, "md5_digest": "4fb3e097948945c0ac5b391b03d80d17", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 44796, "upload_time": "2014-09-22T20:36:23", "url": "https://files.pythonhosted.org/packages/03/c2/0d015411780f82849936bf59a4066fffeab2d90c805e8ebd4c51b3dc1719/wireless_radar-0.2.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "7c30975bc792349714f3b74417c40205", "sha256": "09258776c94d8d85d552803acd329d9ad6ec90e48133a5a2703171ff18692ec2" }, "downloads": -1, "filename": "wireless-radar-0.2.1.tar.gz", "has_sig": true, "md5_digest": "7c30975bc792349714f3b74417c40205", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26851, "upload_time": "2014-09-22T20:36:14", "url": "https://files.pythonhosted.org/packages/0c/7e/0e9c6d97eb8cf6c3e08f0f42da19ad3de7d36fb80891badeafc2c9bda9b1/wireless-radar-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "b554ba76a4e678bf72088622338d5842", "sha256": "068b985c3ed1bc6b29c0f8f1da05ae571ce54e1a4c43eab00d0a06aa97276133" }, "downloads": -1, "filename": "wireless_radar-0.2.2-py2.7.egg", "has_sig": true, "md5_digest": "b554ba76a4e678bf72088622338d5842", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 44859, "upload_time": "2016-05-30T15:44:55", "url": "https://files.pythonhosted.org/packages/d8/ac/933de72d2efe25ae910242cf5edde4109c1d35187389989d23cd3094e3b4/wireless_radar-0.2.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "08088250692297b177c10625b8b7a9b5", "sha256": "d4fa9bb5d088474f152dfde1ae535718f1a1022085a8addddc64f7dd6412f3ea" }, "downloads": -1, "filename": "wireless-radar-0.2.2.tar.gz", "has_sig": true, "md5_digest": "08088250692297b177c10625b8b7a9b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26897, "upload_time": "2016-05-30T15:44:38", "url": "https://files.pythonhosted.org/packages/2b/db/05972e7ac9e7cdf0d90a2fe6f10cb56b378a37b135fbac332449c025a4ae/wireless-radar-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "4d630a0fd54b53b4de6c524a025fafa8", "sha256": "c98d614dfbcb9cf4002b65ccd4382aaedf826ed44454131b50aa8c2065bebccc" }, "downloads": -1, "filename": "wireless-radar-0.2.3.tar.gz", "has_sig": true, "md5_digest": "4d630a0fd54b53b4de6c524a025fafa8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26908, "upload_time": "2018-03-18T13:50:22", "url": "https://files.pythonhosted.org/packages/56/88/c4694f43d5592629d9e2281c1d1cbbd950a533c320ca9d8819fc4d4d6e59/wireless-radar-0.2.3.tar.gz" } ], "0.2.3.1": [ { "comment_text": "", "digests": { "md5": "5f92facdb220aafa1280b4b865aa6dc1", "sha256": "278e668b90c836aac9964290a98ece4f24836edc40ec27d150dec895db59ac15" }, "downloads": -1, "filename": "wireless-radar-0.2.3.1.tar.gz", "has_sig": true, "md5_digest": "5f92facdb220aafa1280b4b865aa6dc1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26940, "upload_time": "2019-03-05T14:30:45", "url": "https://files.pythonhosted.org/packages/e5/ba/586481d521d8b3d12c5a7642e37845150f8b00a166b06b658da665854fd9/wireless-radar-0.2.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5f92facdb220aafa1280b4b865aa6dc1", "sha256": "278e668b90c836aac9964290a98ece4f24836edc40ec27d150dec895db59ac15" }, "downloads": -1, "filename": "wireless-radar-0.2.3.1.tar.gz", "has_sig": true, "md5_digest": "5f92facdb220aafa1280b4b865aa6dc1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26940, "upload_time": "2019-03-05T14:30:45", "url": "https://files.pythonhosted.org/packages/e5/ba/586481d521d8b3d12c5a7642e37845150f8b00a166b06b658da665854fd9/wireless-radar-0.2.3.1.tar.gz" } ] }