refact: started refactoring in order to have several types of net.probe probers

This commit is contained in:
evilsocket 2018-01-24 13:04:28 +01:00
commit c6d4c2a616
2 changed files with 28 additions and 17 deletions

View file

@ -1,7 +1,6 @@
package modules
import (
"fmt"
"net"
"time"
@ -67,22 +66,7 @@ func (p *Prober) shouldProbe(ip net.IP) bool {
}
func (p *Prober) sendProbe(from net.IP, from_hw net.HardwareAddr, ip net.IP) {
name := fmt.Sprintf("%s:137", ip)
if addr, err := net.ResolveUDPAddr("udp", name); err != nil {
log.Error("Could not resolve %s.", name)
} else if con, err := net.DialUDP("udp", nil, addr); err != nil {
log.Error("Could not dial %s.", name)
} else {
// log.Debug("UDP connection to %s enstablished.", name)
defer con.Close()
wrote, _ := con.Write([]byte{0xde, 0xad, 0xbe, 0xef})
if wrote > 0 {
p.Session.Queue.Lock()
p.Session.Queue.Sent += uint64(wrote)
p.Session.Queue.Unlock()
}
}
p.sendProbeUDP(from, from_hw, ip)
}
func (p *Prober) Configure() error {

27
modules/net_probe_udp.go Normal file
View file

@ -0,0 +1,27 @@
package modules
import (
"fmt"
"net"
"github.com/evilsocket/bettercap-ng/log"
)
func (p *Prober) sendProbeUDP(from net.IP, from_hw net.HardwareAddr, ip net.IP) {
name := fmt.Sprintf("%s:137", ip)
if addr, err := net.ResolveUDPAddr("udp", name); err != nil {
log.Error("Could not resolve %s.", name)
} else if con, err := net.DialUDP("udp", nil, addr); err != nil {
log.Error("Could not dial %s.", name)
} else {
// log.Debug("UDP connection to %s enstablished.", name)
defer con.Close()
wrote, _ := con.Write([]byte{0xde, 0xad, 0xbe, 0xef})
if wrote > 0 {
p.Session.Queue.Lock()
p.Session.Queue.Sent += uint64(wrote)
p.Session.Queue.Unlock()
}
}
}