network

package
v2.0.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 27, 2018 License: GPL-3.0 Imports: 15 Imported by: 0

Documentation

Overview

Package network contains network specific code ... lol.

Index

Constants

View Source
const (
	MonitorModeAddress = "0.0.0.0"
	BroadcastSuffix    = ".255"
	BroadcastMac       = "ff:ff:ff:ff:ff:ff"
	IPv4MulticastStart = "01:00:5e:00:00:00"
	IPv4MulticastEnd   = "01:00:5e:7f:ff:ff"
)
View Source
const LANAliasesFile = "~/bettercap.aliases"
View Source
const LANDefaultttl = 10

Variables

View Source
var (
	BroadcastHw   = []byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
	IPv4Validator = regexp.MustCompile("^[0-9\\.]+/?\\d*$")
)
View Source
var ArpCmd = "ip"
View Source
var ArpCmdOpts = []string{"neigh"}
View Source
var ArpTableParser = regexp.MustCompile("^([\\d\\.]+)\\s+dev\\s+(\\w+)\\s+\\w+\\s+([a-f0-9:]{17})\\s+\\w+$")
View Source
var ArpTableTokenIndex = []int{1, 3, 2}
View Source
var ArpTableTokens = 4
View Source
var ErrNoGateway = errors.New("Could not detect gateway.")
View Source
var ErrNoIfaces = errors.New("No active interfaces found.")
View Source
var IPv4RouteCmd = "ip"
View Source
var IPv4RouteCmdOpts = []string{"route"}
View Source
var IPv4RouteParser = regexp.MustCompile("^(default|[0-9\\.]+)\\svia\\s([0-9\\.]+)\\sdev\\s(\\w+)\\s.*$")

only matches gateway lines

View Source
var IPv4RouteTokens = 4
View Source
var WiFiFreqParser = regexp.MustCompile("^\\s+Channel.([0-9]+)\\s+:\\s+([0-9\\.]+)\\s+GHz.*$")

Functions

func ArpInverseLookup

func ArpInverseLookup(iface string, mac string, refresh bool) (string, error)

func ArpLookup

func ArpLookup(iface string, address string, refresh bool) (string, error)

func ArpParsed

func ArpParsed() bool

func GetSupportedFrequencies

func GetSupportedFrequencies(iface string) ([]int, error)

func NormalizeMac

func NormalizeMac(mac string) string

func OuiLookup

func OuiLookup(mac string) string

func SetInterfaceChannel

func SetInterfaceChannel(iface string, channel int) error

Types

type APLostCallback

type APLostCallback func(ap *AccessPoint)

type APNewCallback

type APNewCallback func(ap *AccessPoint)

type AccessPoint

type AccessPoint struct {
	*Station
	sync.Mutex
	// contains filtered or unexported fields
}

func NewAccessPoint

func NewAccessPoint(essid, bssid string, frequency int, rssi int8) *AccessPoint

func (*AccessPoint) AddClient

func (ap *AccessPoint) AddClient(bssid string, frequency int, rssi int8) *Station

func (*AccessPoint) Clients

func (ap *AccessPoint) Clients() (list []*Station)

func (*AccessPoint) Get

func (ap *AccessPoint) Get(bssid string) (*Station, bool)

func (*AccessPoint) MarshalJSON

func (ap *AccessPoint) MarshalJSON() ([]byte, error)

func (*AccessPoint) NumClients

func (ap *AccessPoint) NumClients() int

type Aliases

type Aliases struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func LoadAliases

func LoadAliases() (err error, aliases *Aliases)

func (*Aliases) Get

func (a *Aliases) Get(mac string) string

func (*Aliases) Save

func (a *Aliases) Save() error

func (*Aliases) Set

func (a *Aliases) Set(mac, alias string) error

type ArpTable

type ArpTable map[string]string

func ArpUpdate

func ArpUpdate(iface string) (ArpTable, error)

type BLE

type BLE struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewBLE

func NewBLE(newcb BLEDevNewCallback, lostcb BLEDevLostCallback) *BLE

func (*BLE) AddIfNew

func (b *BLE) AddIfNew(id string, p gatt.Peripheral, a *gatt.Advertisement, rssi int) *BLEDevice

func (*BLE) Devices

func (b *BLE) Devices() (devices []*BLEDevice)

func (*BLE) Get

func (b *BLE) Get(id string) (dev *BLEDevice, found bool)

func (*BLE) MarshalJSON

func (b *BLE) MarshalJSON() ([]byte, error)

func (*BLE) Remove

func (b *BLE) Remove(id string)

type BLEDevLostCallback

type BLEDevLostCallback func(dev *BLEDevice)

type BLEDevNewCallback

type BLEDevNewCallback func(dev *BLEDevice)

type BLEDevice

type BLEDevice struct {
	LastSeen      time.Time
	Device        gatt.Peripheral
	Vendor        string
	Advertisement *gatt.Advertisement
	RSSI          int
}

func NewBLEDevice

func NewBLEDevice(p gatt.Peripheral, a *gatt.Advertisement, rssi int) *BLEDevice

type Endpoint

type Endpoint struct {
	Index            int                    `json:"-"`
	IP               net.IP                 `json:"-"`
	Net              *net.IPNet             `json:"-"`
	IPv6             net.IP                 `json:"-"`
	HW               net.HardwareAddr       `json:"-"`
	IpAddress        string                 `json:"ipv4"`
	Ip6Address       string                 `json:"ipv6"`
	SubnetBits       uint32                 `json:"-"`
	IpAddressUint32  uint32                 `json:"-"`
	HwAddress        string                 `json:"mac"`
	Hostname         string                 `json:"hostname"`
	Alias            string                 `json:"alias"`
	Vendor           string                 `json:"vendor"`
	ResolvedCallback OnHostResolvedCallback `json:"-"`
	FirstSeen        time.Time              `json:"first_seen"`
	LastSeen         time.Time              `json:"last_seen"`
	Meta             *Meta                  `json:"meta"`
}

func FindGateway

func FindGateway(iface *Endpoint) (*Endpoint, error)

func FindInterface

func FindInterface(name string) (*Endpoint, error)

func IPv4RouteIsGateway

func IPv4RouteIsGateway(ifname string, tokens []string, f func(gateway string) (*Endpoint, error)) (*Endpoint, error)

func NewEndpoint

func NewEndpoint(ip, mac string) *Endpoint

func NewEndpointNoResolve

func NewEndpointNoResolve(ip, mac, name string, bits uint32) *Endpoint

func NewEndpointWithAlias

func NewEndpointWithAlias(ip, mac, alias string) *Endpoint

func (*Endpoint) CIDR

func (t *Endpoint) CIDR() string

func (*Endpoint) IsMonitor

func (t *Endpoint) IsMonitor() bool

func (*Endpoint) Name

func (t *Endpoint) Name() string

func (*Endpoint) SetBits

func (t *Endpoint) SetBits(bits uint32)

func (*Endpoint) SetIP

func (t *Endpoint) SetIP(ip string)

func (*Endpoint) SetIPv6

func (t *Endpoint) SetIPv6(netw string)

func (*Endpoint) SetNetwork

func (t *Endpoint) SetNetwork(netw string)

func (*Endpoint) String

func (t *Endpoint) String() string

type EndpointLostCallback

type EndpointLostCallback func(e *Endpoint)

type EndpointNewCallback

type EndpointNewCallback func(e *Endpoint)

type LAN

type LAN struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func NewLAN

func NewLAN(iface, gateway *Endpoint, newcb EndpointNewCallback, lostcb EndpointLostCallback) *LAN

func (*LAN) AddIfNew

func (lan *LAN) AddIfNew(ip, mac string) *Endpoint

func (*LAN) EachHost

func (lan *LAN) EachHost(cb func(mac string, e *Endpoint))

func (*LAN) Get

func (lan *LAN) Get(mac string) (*Endpoint, bool)

func (*LAN) GetAlias

func (lan *LAN) GetAlias(mac string) string

func (*LAN) GetByIp

func (lan *LAN) GetByIp(ip string) *Endpoint

func (*LAN) Has

func (lan *LAN) Has(ip string) bool

func (*LAN) List

func (lan *LAN) List() (list []*Endpoint)

func (*LAN) MarshalJSON

func (l *LAN) MarshalJSON() ([]byte, error)

func (*LAN) Remove

func (lan *LAN) Remove(ip, mac string)

func (*LAN) SetAliasFor

func (lan *LAN) SetAliasFor(mac, alias string) bool

func (*LAN) WasMissed

func (lan *LAN) WasMissed(mac string) bool

type Meta

type Meta struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func NewMeta

func NewMeta() *Meta

func (*Meta) Each

func (m *Meta) Each(cb func(name string, value interface{}))

func (*Meta) Empty

func (m *Meta) Empty() bool

func (*Meta) Get

func (m *Meta) Get(name string) interface{}

func (*Meta) GetIntsWith

func (m *Meta) GetIntsWith(name string, with int, sorted bool) []int

func (*Meta) GetOr

func (m *Meta) GetOr(name string, dflt interface{}) interface{}

func (*Meta) MarshalJSON

func (m *Meta) MarshalJSON() ([]byte, error)

func (*Meta) Set

func (m *Meta) Set(name string, value interface{})

func (*Meta) SetInts

func (m *Meta) SetInts(name string, ints []int)

type OnHostResolvedCallback

type OnHostResolvedCallback func(e *Endpoint)

type Station

type Station struct {
	*Endpoint
	Frequency      int    `json:"frequency"`
	RSSI           int8   `json:"rssi"`
	Sent           uint64 `json:"sent"`
	Received       uint64 `json:"received"`
	Encryption     string `json:"encryption"`
	Cipher         string `json:"cipher"`
	Authentication string `json:"authentication"`
}

func NewStation

func NewStation(essid, bssid string, frequency int, rssi int8) *Station

func (Station) BSSID

func (s Station) BSSID() string

func (*Station) ESSID

func (s *Station) ESSID() string

type WiFi

type WiFi struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func NewWiFi

func NewWiFi(iface *Endpoint, newcb APNewCallback, lostcb APLostCallback) *WiFi

func (*WiFi) AddIfNew

func (w *WiFi) AddIfNew(ssid, mac string, frequency int, rssi int8) *AccessPoint

func (*WiFi) Clear

func (w *WiFi) Clear() error

func (*WiFi) EachAccessPoint

func (w *WiFi) EachAccessPoint(cb func(mac string, ap *AccessPoint))

func (*WiFi) Get

func (w *WiFi) Get(mac string) (*AccessPoint, bool)

func (*WiFi) List

func (w *WiFi) List() (list []*AccessPoint)

func (*WiFi) MarshalJSON

func (w *WiFi) MarshalJSON() ([]byte, error)

func (*WiFi) Remove

func (w *WiFi) Remove(mac string)

func (*WiFi) Stations

func (w *WiFi) Stations() (list []*Station)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL