fix: normalize mac address before parsing it (ref #10)

This commit is contained in:
evilsocket 2018-01-23 17:53:45 +01:00
parent 417a288b42
commit b331ca81a2

View file

@ -4,6 +4,7 @@ import (
"encoding/binary" "encoding/binary"
"fmt" "fmt"
"net" "net"
"strings"
"time" "time"
"github.com/evilsocket/bettercap-ng/core" "github.com/evilsocket/bettercap-ng/core"
@ -34,8 +35,19 @@ func ip2int(ip net.IP) uint32 {
return binary.BigEndian.Uint32(ip) 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 { func NewEndpointNoResolve(ip, mac, name string, bits uint32) *Endpoint {
addr := net.ParseIP(ip) addr := net.ParseIP(ip)
mac = normalizeMac(mac)
hw, _ := net.ParseMAC(mac) hw, _ := net.ParseMAC(mac)
now := time.Now() now := time.Now()