{"id":13775451,"url":"https://github.com/h3pr5tq/get-rssi","last_synced_at":"2025-05-11T07:32:44.457Z","repository":{"id":215850634,"uuid":"71129512","full_name":"h3pr5tq/get-rssi","owner":"h3pr5tq","description":"Linux utility for getting RSSI WiFi of APs to text file. Using Monitor mode, libpcap. Useful for experiments with WiFi (example, localization).","archived":false,"fork":false,"pushed_at":"2016-11-19T15:25:56.000Z","size":21,"stargazers_count":7,"open_issues_count":0,"forks_count":7,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-17T10:39:55.169Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/h3pr5tq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-10-17T11:07:55.000Z","updated_at":"2024-10-12T08:15:13.000Z","dependencies_parsed_at":"2024-01-17T15:07:14.972Z","dependency_job_id":null,"html_url":"https://github.com/h3pr5tq/get-rssi","commit_stats":null,"previous_names":["h3pr5tq/get-rssi"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h3pr5tq%2Fget-rssi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h3pr5tq%2Fget-rssi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h3pr5tq%2Fget-rssi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h3pr5tq%2Fget-rssi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/h3pr5tq","download_url":"https://codeload.github.com/h3pr5tq/get-rssi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253534084,"owners_count":21923515,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T17:01:38.913Z","updated_at":"2025-05-11T07:32:39.437Z","avatar_url":"https://github.com/h3pr5tq.png","language":"C","funding_links":[],"categories":["\u003ca id=\"8bc2e181f74ba67ec93fd2a13d95cc0c\"\u003e\u003c/a\u003elibpcap"],"sub_categories":["\u003ca id=\"b239f12aca7aa942b45836032cbef99a\"\u003e\u003c/a\u003e转换"],"readme":"# get-rssi\nДанная Linux-утилита позволяет получить информацию об изменении уровня WiFi сигнала (RSSI) окружающих точек доступа (Access Point, AP) в течении заданного интервала времени. Утилита выполняет следующее:\n\n1. захват beacon фреймов указанных AP;\n2. сохранение захваченных beacons в cap-файл;\n3. разбор cap-файла с целью извлечения значений RSSI сигналов WiFi, принимаемых Linux-устройством (на котором запущена утилита) в моменты времени, которые соответствуют приёму каждого beacon фрейма;\n4. сохранение значений RSSI в отдельный текстовый файл (txt-файл).\n\nПользователь задаёт:\n\n* время, в течение которого будет происходить захват beacon фреймов;\n* MAC-адреса точек доступа, фреймы только которых будут захватываться.\n\nОграничения (подробнее см. **Примечание**):\n\n* сетевой интерфейс должен находится в *Monitor* режиме *ПЕРЕД* запуском утилиты;\n* все заданные AP должны работать на *одном и том же* частотном канале;\n* частотный канал сетевого интерфейса должен *совпадать* с частотным каналом заданных AP.\n\n## Установка\nНиже приведён пример установки для Debian Stretch.\n\n1) Установить пакеты, необходимые для сборки и работы утилиты: *build-essential, libpcap0.8, libpcap-dev*. Это можно сделать, например, так:\n```\nsudo apt-get update\nsudo apt-get install build-essential libpcap0.8 libpcap-dev\n```\n\n2) Скачать файлы данного репозитория. Можно скачать архивом с помощью браузера (кнопка *Clone or download*); или, если установлен *git*, выполнив команду:\n```\ngit clone https://github.com/h3pr5tq/get-rssi.git\n```\n\n3) Для сборки надо перейти в папку проекта *.../get-rssi/* (предварительно разархивировав, если скачивали с помощью браузера) и выполнить команды:\n```\nmake\nsudo make install\n```\nГотово!\n\nДля удаления утилиты выполните `sudo make uninstall` или тоже самое, но напрямую `sudo rm /usr/local/bin/get-rssi`.  \nВ случае ошибок при сборке необходимо очистить промежуточные файлы. Это можно сделать с помощью команды `make clean`.\n\n## Использование\nПример в случае одной точки доступа:\n```\nsudo get-rssi  -i mon0  -f ~/rssi  -b 01:FA:23:18:12:F2  -t 100\n```\nПример в случае нескольких точек доступа:\n```\nsudo get-rssi  -i mon0  -f ~/rssi  -b 01:FA:23:18:12:F2,02:bc:19:72:af:ff,01:CC:31:87:af:ff  -t 100\n```\nУтилита требует 4 обязательных аргумента:\n\n* `-i` - имя сетевого интерфейса в Monitor режиме;\n* `-f` - префикс для cap- и txt-файла; например, в случае `-f ~/rssi` утилита создаст *~/rssi.cap* и *~/rssi.txt* файлы;\n* `-b` - MAC-адреса точек доступа, beacons только которых будут захватываться; в случае нескольких точек доступа MAC-адреса перечисляем через запятую, *БЕЗ* пробелов;\n* `-t` - время в секундах, в течении которого будет происходить захват beacons; данное значение примерно соответствует времени выполнения утилиты.\n\nПо окончанию выполнения утилиты должны получить два файла: cap и txt. Текстовый файл будет иметь следующий вид:  \n(В случае одной AP)\n```\ntimestamp (sec):  RSSI (dBm):  BSSID:\n\n0.000000          -79          01:FA:23:18:12:F2\n0.102371          -78          01:FA:23:18:12:F2\n0.204696          -77          01:FA:23:18:12:F2\n0.307270          -78          01:FA:23:18:12:F2\n0.409626          -78          01:FA:23:18:12:F2\n0.512004          -77          01:FA:23:18:12:F2\n0.716764          -78          01:FA:23:18:12:F2\n1.024013          -77          01:FA:23:18:12:F2\n1.126392          -77          01:FA:23:18:12:F2\n1.228766          -81          01:FA:23:18:12:F2\n1.331143          -81          01:FA:23:18:12:F2\n1.433533          -80          01:FA:23:18:12:F2\n1.536041          -84          01:FA:23:18:12:F2\n1.638399          -82          01:FA:23:18:12:F2\n1.740775          -85          01:FA:23:18:12:F2\n2.252738          -84          01:FA:23:18:12:F2\n________________________________________________\n\nNumber of all sniff beacon frames: 16 (it coincides with number of RSSI values)\nBSSID 01:FA:23:18:12:F2 : 16 of 16\n```\n\n(В случае двух AP)\n```\ntimestamp (sec):  RSSI (dBm):  BSSID:\n\n0.000000          -85          02:BC:19:72:AF:FF\n0.068741          -77          01:FA:23:18:12:F2\n0.205759          -84          02:BC:19:72:AF:FF\n0.376063          -78          01:FA:23:18:12:F2\n0.478443          -76          01:FA:23:18:12:F2\n0.512194          -86          02:BC:19:72:AF:FF\n0.580815          -76          01:FA:23:18:12:F2\n0.683213          -76          01:FA:23:18:12:F2\n0.716832          -86          02:BC:19:72:AF:FF\n0.819212          -85          02:BC:19:72:AF:FF\n0.888077          -76          01:FA:23:18:12:F2\n0.921616          -87          02:BC:19:72:AF:FF\n0.990374          -77          01:FA:23:18:12:F2\n1.023950          -87          02:BC:19:72:AF:FF\n1.126447          -88          02:BC:19:72:AF:FF\n1.197198          -79          01:FA:23:18:12:F2\n1.297653          -77          01:FA:23:18:12:F2\n1.400074          -76          01:FA:23:18:12:F2\n1.535951          -86          02:BC:19:72:AF:FF\n1.604828          -75          01:FA:23:18:12:F2\n1.638330          -87          02:BC:19:72:AF:FF\n1.707208          -75          01:FA:23:18:12:F2\n1.740835          -86          02:BC:19:72:AF:FF\n1.809829          -75          01:FA:23:18:12:F2\n1.843779          -86          02:BC:19:72:AF:FF\n1.912085          -76          01:FA:23:18:12:F2\n2.014458          -76          01:FA:23:18:12:F2\n________________________________________________\n\nNumber of all sniff beacon frames: 27 (it coincides with number of RSSI values)\nBSSID 01:FA:23:18:12:F2 : 15 of 27\nBSSID 02:BC:19:72:AF:FF : 12 of 27\n```\n\n## Примечание\n#### 1) Настройка сетевого интерфейса для работы с утилитой\nНастройка предполгает последовательное выполнение следующих действий:\n\n1. Завершение выполняющихся сетевых процессов, отвечающих за WiFi-соединение (обычно это wpa_supplicant, dhclient, NetworkManager и т.п.). Это необходимо для корректной работы *Monitor* режима.\n    * `sudo airmon-ng check kill` - автоматическое завершение сетевых процессов (необходимо установить пакет *aircrack-ng*);\n    * `sudo kill PID` или `sudo systemctl stop SERVICE_NAME` - завершение сетевых процессов в ручную, используя стандартные системные утилиты.\n2. Включение выбранного сетевого интерфейса (который будем переводить в *Monitor* режим) и отключение лишних (остальных) *беспроводных* сетевых интерфейсов.\n    * `sudo iw dev` - просмотр доступных беспроводных сетевых интерфейсов;\n    * `sudo ip link set \u003cdevname\u003e up` - включение интерфейса;\n    * `sudo ip link set \u003cdevname\u003e down` - отключение интерфейса.\n3. Перевод выбранного сетевого интерфейса в *Monitor* режим.\n    * `sudo airmon-ng start \u003cdevname\u003e` - используя пакет *aircrack-ng*;  \nили\n    * `sudo iw dev \u003cdevname\u003e set monitor none` - используя стандартную системную утилиту.\n4. Конфигурирование выбранного сетевого интерфейса на определённый частотный канал.\n    * `sudo iw dev \u003cdevname\u003e set channel CHANNEL`, где *CHANNEL* - номер частотного канала: 1 - 13;  \nили\n    * `sudo iw dev \u003cdevname\u003e set freq FREQ` - тоже самое, но указываем центральную частоту FREQ.\n\n#### 2) Другое\n* Заданные APs (аргумент `-b`) должны рабоать на одном и том же частотном канале, который совпадает с частотным каналом сетевого интерфейса Linux-устройства (где запущена утилита). Также необходимо знать MAC-адреса APs. Получить данную информацию удобно с помощью утилиты *airodump-ng* (входит в состав пакета *aircrack-ng*).\n* Кол-во захваченных beacons от каждой AP за заданное время зависит от RSSI (для конкретной AP) и beacon interval (параметр AP, показывающий как часто AP будет отправлять beacon фреймы).\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh3pr5tq%2Fget-rssi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fh3pr5tq%2Fget-rssi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh3pr5tq%2Fget-rssi/lists"}