package common import ( "net" "reflect" "strings" ) var ( Targets map[string]TargetModuleType //Available target modules storage ) type TargetModuleType interface { Set(destination string, iplist []net.IPNet) error } func init() { Targets = make(map[string]TargetModuleType) } func RegisterTarget(tgt TargetModuleType) { Targets[strings.ToLower(reflect.ValueOf(tgt).Type().Name())] = tgt }