diff --git a/network/net.go b/network/net.go index b5658a73..6be43dcf 100644 --- a/network/net.go +++ b/network/net.go @@ -271,3 +271,18 @@ func ActivateInterface(name string) error { } return nil } + +func GatewayProvidedByUser(iface *Endpoint, gateway string) (*Endpoint, error) { + Debug("GatewayProvidedByUser(%s) [cmd=%v opts=%v parser=%v]", gateway, IPv4RouteCmd, IPv4RouteCmdOpts, IPv4RouteParser) + if IPv4Validator.MatchString(gateway) { + Debug("valid gateway ip %s", gateway) + // we have the address, now we need its mac + if mac, err := ArpLookup(iface.Name(), gateway, false); err != nil { + return nil, err + } else { + Debug("gateway is %s[%s]", gateway, mac) + return NewEndpoint(gateway, mac), nil + } + } + return nil, fmt.Errorf("Provided gateway %s not a valid IPv4 address! Revert to find default gateway.", gateway) +} diff --git a/network/net_gateway.go b/network/net_gateway.go index cda8ba1f..4b2cb268 100644 --- a/network/net_gateway.go +++ b/network/net_gateway.go @@ -3,7 +3,6 @@ package network import ( - "fmt" "strings" "github.com/bettercap/bettercap/core" @@ -49,18 +48,3 @@ func FindGateway(iface *Endpoint) (*Endpoint, error) { Debug("FindGateway(%s): nothing found :/", iface.Name()) return nil, ErrNoGateway } - -func GatewayProvidedByUser(iface *Endpoint, gateway string) (*Endpoint, error) { - Debug("GatewayProvidedByUser(%s) [cmd=%v opts=%v parser=%v]", gateway, IPv4RouteCmd, IPv4RouteCmdOpts, IPv4RouteParser) - if IPv4Validator.MatchString(gateway) { - Debug("valid gateway ip %s", gateway) - // we have the address, now we need its mac - if mac, err := ArpLookup(iface.Name(), gateway, false); err != nil { - return nil, err - } else { - Debug("gateway is %s[%s]", gateway, mac) - return NewEndpoint(gateway, mac), nil - } - } - return nil, fmt.Errorf("Provided gateway %s not a valid IPv4 address! Revert to find default gateway.", gateway) -}