From 52d7ccf3cd6703845f5efd45a9baf624b074a092 Mon Sep 17 00:00:00 2001 From: evilsocket Date: Wed, 7 Feb 2018 22:07:57 +0100 Subject: [PATCH] fix: normalizing dumb windows mac addresses (I HATE YOU MS) --- net/endpoint.go | 11 ----------- net/net.go | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/net/endpoint.go b/net/endpoint.go index 5690951b..2f607a29 100644 --- a/net/endpoint.go +++ b/net/endpoint.go @@ -4,7 +4,6 @@ import ( "encoding/binary" "fmt" "net" - "strings" "time" "github.com/evilsocket/bettercap-ng/core" @@ -36,16 +35,6 @@ 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) diff --git a/net/net.go b/net/net.go index 74c5e617..f0a779e0 100644 --- a/net/net.go +++ b/net/net.go @@ -49,6 +49,22 @@ func getInterfaceName(iface net.Interface) string { return iface.Name } +func NormalizeMac(mac string) string { + var parts []string + if strings.ContainsRune(mac, '-') { + parts = strings.Split(mac, "-") + } else { + parts = strings.Split(mac, ":") + } + + for i, p := range parts { + if len(p) < 2 { + parts[i] = "0" + p + } + } + return strings.Join(parts, ":") +} + func FindInterface(name string) (*Endpoint, error) { ifaces, err := net.Interfaces() if err != nil {