diff --git a/modules/net_recon/net_recon.go b/modules/net_recon/net_recon.go index ba76f1af..3ec71168 100644 --- a/modules/net_recon/net_recon.go +++ b/modules/net_recon/net_recon.go @@ -30,6 +30,13 @@ func NewDiscovery(s *session.Session) *Discovery { return mod.Stop() })) + mod.AddHandler(session.NewModuleHandler("net.clear", "", + "Clear all endpoints collected by the hosts discovery module.", + func(args []string) error { + mod.Session.Lan.Clear() + return nil + })) + mod.AddParam(session.NewBoolParameter("net.show.meta", "false", "If true, the net.show command will show all metadata collected about each endpoint.")) diff --git a/network/lan.go b/network/lan.go index c1d7902d..953ef882 100644 --- a/network/lan.go +++ b/network/lan.go @@ -229,3 +229,10 @@ func (lan *LAN) AddIfNew(ip, mac string) *Endpoint { func (lan *LAN) GetAlias(mac string) string { return lan.aliases.GetOr(mac, "") } + +func (lan *LAN) Clear() { + lan.Lock() + defer lan.Unlock() + lan.hosts = make(map[string]*Endpoint) + lan.ttl = make(map[string]uint) +}