FEAT: Ports de scan depuis la base caméras + portFilter par protocole #68

Closed
opened 2026-08-11 21:53:19 +02:00 by nonobis · 0 comments
Owner

Contexte

Strix charge les ports scannés depuis sa DB (internal/probe/probe.go : SELECT DISTINCT port FROM streams UNION preset_streams) → 17 ports dont 10554, 51826 (Hikvision SDK), 7070, 7447, 5544, 1935 (RTMP), 81, 88, 8090, 8001, 8081. Heimdall a 10 ports en dur → rate les caméras qui n'exposent que ces ports exotiques.

État actuel

  • NetworkCameraScanner.CameraPorts = [80, 443, 554, 8554, 3702, 8899, 37777, 34567, 34568, 8000]
  • BuildStreamUrls : resolvedPort = 554 si présent sinon ports[0] → URLs incohérentes (ex. RTSP sur :80) ; pas de filtre par protocole
  • Strix defaultPorts (fallback) : [554, 80, 8080, 443, 8554, 5544, 10554, 1935, 81, 88, 8090, 8001, 8081, 7070, 7447, 34567, 51826]

À faire

  1. Immédiat : ajouter les ports manquants en dur : 8080, 5544, 10554, 1935, 81, 88, 8090, 8001, 8081, 7070, 7447, 51826
  2. Quand la DB Strix est embarquée (ticket base caméras) : loadPorts depuis SELECT DISTINCT port (streams + preset_streams) avec fallback
  3. portFilter par protocole (Strix pkg/camdb/streams.go defaultPorts + filtre) : pour chaque template, ne garder l'URL que si son port est dans les ports ouverts OU est le défaut du protocole (rtsp=554, rtmp=1935, http=80, bubble=80, dvrip=34567) ; ne plus forcer ports[0]

Critères d'acceptation

  • Une caméra qui n'expose que 10554 ou 51826 est détectée et testée
  • Les URLs construites ne proposent que des ports plausibles (ouverts ou défaut protocole)
  • Performance : le surcoût de ports reste borné (timeout court, cf. 491a253)

Fichiers concernés

  • src/Heimdall.Agent/Services/NetworkCameraScanner.cs
  • src/Heimdall.Application/Discovery/CameraStreamTemplates.cs
  • src/Heimdall.Infrastructure/Services/Discovery/CameraDiscoveryService.cs

Référence

  • Strix internal/probe/probe.go (loadPorts/defaultPorts), pkg/camdb/streams.go (defaultPorts + portFilter)
## Contexte Strix charge les ports scannés **depuis sa DB** (`internal/probe/probe.go` : `SELECT DISTINCT port FROM streams UNION preset_streams`) → 17 ports dont 10554, **51826** (Hikvision SDK), 7070, 7447, 5544, 1935 (RTMP), 81, 88, 8090, 8001, 8081. Heimdall a 10 ports en dur → rate les caméras qui n'exposent que ces ports exotiques. ## État actuel - `NetworkCameraScanner.CameraPorts` = [80, 443, 554, 8554, 3702, 8899, 37777, 34567, 34568, 8000] - `BuildStreamUrls` : `resolvedPort` = 554 si présent sinon `ports[0]` → URLs incohérentes (ex. RTSP sur :80) ; pas de filtre par protocole - Strix `defaultPorts` (fallback) : [554, 80, 8080, 443, 8554, 5544, 10554, 1935, 81, 88, 8090, 8001, 8081, 7070, 7447, 34567, 51826] ## À faire 1. **Immédiat** : ajouter les ports manquants en dur : 8080, 5544, 10554, 1935, 81, 88, 8090, 8001, 8081, 7070, 7447, 51826 2. **Quand la DB Strix est embarquée** (ticket base caméras) : `loadPorts` depuis `SELECT DISTINCT port` (streams + preset_streams) avec fallback 3. **portFilter par protocole** (Strix `pkg/camdb/streams.go` defaultPorts + filtre) : pour chaque template, ne garder l'URL que si son port est dans les ports ouverts OU est le défaut du protocole (rtsp=554, rtmp=1935, http=80, bubble=80, dvrip=34567) ; ne plus forcer `ports[0]` ## Critères d'acceptation - Une caméra qui n'expose que 10554 ou 51826 est détectée et testée - Les URLs construites ne proposent que des ports plausibles (ouverts ou défaut protocole) - Performance : le surcoût de ports reste borné (timeout court, cf. 491a253) ## Fichiers concernés - `src/Heimdall.Agent/Services/NetworkCameraScanner.cs` - `src/Heimdall.Application/Discovery/CameraStreamTemplates.cs` - `src/Heimdall.Infrastructure/Services/Discovery/CameraDiscoveryService.cs` ## Référence - Strix `internal/probe/probe.go` (loadPorts/defaultPorts), `pkg/camdb/streams.go` (defaultPorts + portFilter)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nonobis/Heimdall#68
No description provided.