Add SNMP v2c probing and results endpoint.

Probe sysName/sysDescr/sysObjectID for alive hosts, persist SNMP outcomes, and expose scan SNMP data via REST.

Made-with: Cursor
This commit is contained in:
Andrey Lutsenko
2026-04-09 21:56:31 +10:00
parent e9452dcc0a
commit cca4477792
10 changed files with 234 additions and 3 deletions
+8
View File
@@ -10,6 +10,7 @@
- `GET /api/scans/{id}` - просмотр созданного задания.
- `GET /api/scans/{id}/hosts` - результаты проверки хостов по скану.
- `GET /api/scans/{id}/ports` - результаты проверки TCP-портов по скану.
- `GET /api/scans/{id}/snmp` - результаты SNMP v2c (`sysName`, `sysDescr`, `sysObjectID`).
- Валидация CIDR и exclude IP.
- Два backend-хранилища: in-memory и PostgreSQL.
- После создания scan запускается фоновый discovery с обновлением статуса и прогресса.
@@ -45,6 +46,7 @@ HTTP_ADDR=:8080 go run ./cmd/server
```
По умолчанию используется `STORE_BACKEND=memory`.
SNMP-проверка по умолчанию включена (`SNMP_ENABLED=true`, community `public`).
## PostgreSQL без Docker
@@ -144,6 +146,12 @@ curl -s http://localhost:8080/api/scans/<scan_id>/hosts?limit=200
curl -s http://localhost:8080/api/scans/<scan_id>/ports?limit=500
```
Получить SNMP результаты:
```bash
curl -s http://localhost:8080/api/scans/<scan_id>/snmp?limit=500
```
## Запуск как сервис на Linux (systemd)
1. Собрать бинарник: