Локальный сканер сети
Графический интерфейс на Tkinter, который сканирует локальную IPv4-сеть (ARP + опрос nmap), отображает устройства, позволяет запускать полное сканирование портов и экспортировать результаты.
Краткий обзор
- ARP-сканирование для обнаружения устройств в локальной сети.
- Улучшенные nmap-зонды для получения имени хоста, производителя, открытых портов, предположения об ОС и задержки.
- Кнопка полного сканирования портов запускает интенсивное nmap-сканирование выбранного устройства.
- Умная оценка риска (Низкий/Средний/Высокий/Критический) на основе обнаруженных открытых портов.
- Статистика панели управления в реальном времени (всего устройств, хостов с открытыми портами, хостов с высоким риском, средняя задержка).
- Фильтрация/поиск в реальном времени и сортируемые столбцы таблицы для более быстрой сортировки.
- Повторное сканирование выбранного, копирование IP и сведения о сети (локальный/публичный IP + информация о платформе).
- Экспорт результатов в CSV или JSON.
Требования
- Windows 10/11 (протестировано)
- Python 3.9+ (рекомендуется 3.10+)
- Установленный Nmap, доступный в PATH (скачать с https://nmap.org/)
- Установленный Npcap (требуется scapy на Windows) — при установке выберите «WinPcap-совместимый режим», если предложат
- Запускайте скрипт с правами администратора для полной функциональности (ARP, сырые сокеты, некоторые возможности nmap)
Пакеты Python (устанавливаются через requirements.txt):
- scapy
- python-nmap
- tqdm
- requests
Установка
- Откройте PowerShell (рекомендуется: запустить от имени администратора для удобства)
- Создайте и активируйте виртуальное окружение (опционально, но рекомендуется)
- python -m venv .venv
- ..venv\Scripts\Activate.ps1
- Установите пакеты
- pip install -r requirements.txt
Убедитесь, что nmap.exe установлен и доступен в PATH (выполните nmap --version для проверки).
Запуск GUI
Рекомендуется (Windows):
- Щёлкните правой кнопкой мыши по Visual Studio Code и выберите «Запуск от имени администратора», откройте проект, нажмите F5 для отладки или запуска.
- Или откройте PowerShell от имени администратора и выполните:
Примечания:
- При запуске программа запросит повышение привилегий (ShellExecute). Если вы запускаете из VS Code, запустите VS Code от имени администратора, чтобы встроенный отладчик запустился корректно с правами.
- Если после принятия запроса UAC графический интерфейс не появляется, запустите скрипт напрямую из повышенной консоли PowerShell для проверки.
Конфигурация VS Code
Если вы хотите настроить отладку, добавьте .vscode/launch.json (пример):
{
"version": "0.2.0",
"configurations": [
{
"name": "Network Scanner (Admin)",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/app.py",
"console": "integratedTerminal",
"args": []
}
]
}
Важно: В Windows проще запустить сам VS Code от имени администратора (правый клик → Запуск от имени администратора) перед запуском конфигурации отладки.
Использование GUI
- Поле ввода IP-диапазона принимает:
- CIDR:
192.168.1.0/24
- Одиночный IP:
192.168.1.10
- Диапазоны через дефис:
192.168.1.1-254 или 192.168.1.10-192.168.1.20
- Маска подстановки:
192.168.1.*
- Список через запятую:
192.168.1.1,192.168.1.5,192.168.1.100
- Кнопки:
- Start Scan — ARP-обнаружение + лёгкие зонды
- Full Port Scan — выберите строку, нажмите для запуска интенсивного nmap-сканирования этого IP
- Rescan Selected — обновляет сведения только для выбранного хоста
- Copy IP — копирует IP выбранного хоста в буфер обмена
- Network Insights — выводит метаданные локальной/публичной сети в панель логов
- Stop — запрос остановки сканирования
- Export CSV / Save JSON — сохранить собранную информацию об устройствах
- Quit — закрыть приложение
- Фильтруйте устройства в реальном времени (поиск по IP, имени хоста, производителю, ОС или риску) и опционально показывайте только хосты с открытыми портами.
- Нажмите на заголовок столбца для сортировки строк.
- Нажмите на строку устройства, чтобы отобразить удобную для пользователя сводку, а также необработанные структурированные данные в нижней панели. Вы также можете щёлкнуть по строкам в логах, чтобы автоматически выбрать устройство, если присутствует IP.
Поведение и ограничения
- ARP-сканирование работает только в локальном сегменте Ethernet/LAN.
- Полное сканирование портов и определение ОС могут требовать прав администратора и занимать несколько минут на каждый хост.
- Развёртывание диапазонов с дефисом/маской подстановки включает ограничения, чтобы избежать случайного огромного сканирования (защитно).
- Nmap должен быть установлен отдельно — python-nmap является только обёрткой.
Устранение неполадок
- Если появляется диалоговое окно UAC «Принять права администратора», но графический интерфейс не открывается:
- Убедитесь, что VS Code запущен от администратора (предпочтительно) или запустите скрипт в PowerShell от имени администратора.
- Проверьте, что
nmap --version работает из того же окружения.
- Если используется отладчик, запустите сеанс отладки из экземпляра VS Code с повышенными правами.
- Если scapy не работает на Windows: убедитесь, что Npcap установлен, и ваше виртуальное окружение использует тот же интерпретатор Python.
Безопасность и закон
Сканируйте только те сети и устройства, которые вам принадлежат или на тестирование которых у вас есть явное разрешение. Несанкционированное сканирование может быть незаконным и вызывать сбои.
План развития
Улучшения сканера
Интерфейс
Функции безопасности
Поддержка платформ