package model type DiscoveryZone struct { ExcludePatterns []string `json:"excludePatterns"` DiscoveryHost *DiscoveryHost `json:"discoveryHost"` } type DiscoveryHost struct { FirstScanRange string `json:"firstScanRange"` LastScanRange string `json:"lastScanRange"` ExcludeHosts []string `json:"excludeHosts"` IncludeHosts []string `json:"includeHosts"` DiscoveryPort *DiscoveryPort `json:"discoveryPort"` } type DiscoveryPort struct { FirstScanRange int `json:"firstScanRange"` LastScanRange int `json:"lastScanRange"` ExcludePorts []int `json:"excludePorts"` IncludeTCP bool `json:"includeTCP"` IncludeUDP bool `json:"includeUDP"` DiscoveryService *DiscoveryService `json:"discoveryService"` } func (dp *DiscoveryPort) Contains(port int) bool { if dp.FirstScanRange > port { return false } if dp.LastScanRange < port { return false } for _, p := range dp.ExcludePorts { if p == port { return false } } return true } type DiscoveryService struct { IncludeServices []string `json:"includeServices"` } /* Dzone --> zone --> Dhost --> host --> Dport --> port --> Dservice --> service zone --> Dhost --> host --> Dport --> port --> Dservice --> service host --> Dport --> port --> Dservice --> service port --> Dservice --> service */