From b331ca81a24a96fcf50355ef7619b9e1287180d5 Mon Sep 17 00:00:00 2001 From: evilsocket Date: Tue, 23 Jan 2018 17:53:45 +0100 Subject: [PATCH] fix: normalize mac address before parsing it (ref #10) --- net/endpoint.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/net/endpoint.go b/net/endpoint.go index c628cd2d..75a6901f 100644 --- a/net/endpoint.go +++ b/net/endpoint.go @@ -4,6 +4,7 @@ import ( "encoding/binary" "fmt" "net" + "strings" "time" "github.com/evilsocket/bettercap-ng/core" @@ -34,8 +35,19 @@ func ip2int(ip net.IP) uint32 { return binary.BigEndian.Uint32(ip) } +func normalizeMac(mac string) string { + parts := strings.Split(mac, ":") + for i, p := range parts { + if len(p) < 2 { + parts[i] = "0" + p + } + } + return strings.Join(parts, ":") +} + func NewEndpointNoResolve(ip, mac, name string, bits uint32) *Endpoint { addr := net.ParseIP(ip) + mac = normalizeMac(mac) hw, _ := net.ParseMAC(mac) now := time.Now()