wifi: github.com/mdlayher/wifi Index | Files | Directories

package wifi

import "github.com/mdlayher/wifi"

Package wifi provides access to IEEE 802.11 WiFi device actions and statistics.


Package Files

client.go client_linux.go doc.go wifi.go

type BSS Uses

type BSS struct {
    // The service set identifier, or "network name" of the BSS.
    SSID string

    // The BSS service set identifier.  In infrastructure mode, this is the
    // hardware address of the wireless access point that a client is associated
    // with.
    BSSID net.HardwareAddr

    // The frequency used by the BSS, in MHz.
    Frequency int

    // The interval between beacon transmissions for this BSS.
    BeaconInterval time.Duration

    // The time since the client last scanned this BSS's information.
    LastSeen time.Duration

    // The status of the client within the BSS.
    Status BSSStatus

A BSS is an 802.11 basic service set. It contains information about a wireless network associated with an Interface.

type BSSStatus Uses

type BSSStatus int

A BSSStatus indicates the current status of client within a BSS.

const (
    // BSSStatusAuthenticated indicates that a client is authenticated with a BSS.
    BSSStatusAuthenticated BSSStatus = iota

    // BSSStatusAssociated indicates that a client is associated with a BSS.

    // BSSStatusIBSSJoined indicates that a client has joined an independent BSS.

func (BSSStatus) String Uses

func (s BSSStatus) String() string

String returns the string representation of a BSSStatus.

type Client Uses

type Client struct {
    // contains filtered or unexported fields

A Client is a type which can access WiFi device actions and statistics using operating system-specific operations.

func New Uses

func New() (*Client, error)

New creates a new Client.

func (*Client) BSS Uses

func (c *Client) BSS(ifi *Interface) (*BSS, error)

BSS retrieves the BSS associated with a WiFi interface.

func (*Client) Close Uses

func (c *Client) Close() error

Close releases resources used by a Client.

func (*Client) Connect Uses

func (c *Client) Connect(ifi *Interface, ssid string) error

Connect starts connecting the interface to the specified ssid.

func (*Client) Interfaces Uses

func (c *Client) Interfaces() ([]*Interface, error)

Interfaces returns a list of the system's WiFi network interfaces.

func (*Client) StationInfo Uses

func (c *Client) StationInfo(ifi *Interface) ([]*StationInfo, error)

StationInfo retrieves all station statistics about a WiFi interface.

type Interface Uses

type Interface struct {
    // The index of the interface.
    Index int

    // The name of the interface.
    Name string

    // The hardware address of the interface.
    HardwareAddr net.HardwareAddr

    // The physical device that this interface belongs to.
    PHY int

    // The virtual device number of this interface within a PHY.
    Device int

    // The operating mode of the interface.
    Type InterfaceType

    // The interface's wireless frequency in MHz.
    Frequency int

An Interface is a WiFi network interface.

type InterfaceType Uses

type InterfaceType int

An InterfaceType is the operating mode of an Interface.

const (
    // InterfaceTypeUnspecified indicates that an interface's type is unspecified
    // and the driver determines its function.
    InterfaceTypeUnspecified InterfaceType = iota

    // InterfaceTypeAdHoc indicates that an interface is part of an independent
    // basic service set (BSS) of client devices without a controlling access
    // point.

    // InterfaceTypeStation indicates that an interface is part of a managed
    // basic service set (BSS) of client devices with a controlling access point.

    // InterfaceTypeAP indicates that an interface is an access point.

    // InterfaceTypeAPVLAN indicates that an interface is a VLAN interface
    // associated with an access point.

    // InterfaceTypeWDS indicates that an interface is a wireless distribution
    // interface, used as part of a network of multiple access points.

    // InterfaceTypeMonitor indicates that an interface is a monitor interface,
    // receiving all frames from all clients in a given network.

    // InterfaceTypeMeshPoint indicates that an interface is part of a wireless
    // mesh network.

    // InterfaceTypeP2PClient indicates that an interface is a client within
    // a peer-to-peer network.

    // InterfaceTypeP2PGroupOwner indicates that an interface is the group
    // owner within a peer-to-peer network.

    // InterfaceTypeP2PDevice indicates that an interface is a device within
    // a peer-to-peer client network.

    // InterfaceTypeOCB indicates that an interface is outside the context
    // of a basic service set (BSS).

    // InterfaceTypeNAN indicates that an interface is part of a near-me
    // area network (NAN).

func (InterfaceType) String Uses

func (t InterfaceType) String() string

String returns the string representation of an InterfaceType.

type StationInfo Uses

type StationInfo struct {
    // The hardware address of the station.
    HardwareAddr net.HardwareAddr

    // The time since the station last connected.
    Connected time.Duration

    // The time since wireless activity last occurred.
    Inactive time.Duration

    // The number of bytes received by this station.
    ReceivedBytes int

    // The number of bytes transmitted by this station.
    TransmittedBytes int

    // The number of packets received by this station.
    ReceivedPackets int

    // The number of packets transmitted by this station.
    TransmittedPackets int

    // The current data receive bitrate, in bits/second.
    ReceiveBitrate int

    // The current data transmit bitrate, in bits/second.
    TransmitBitrate int

    // The signal strength of this station's connection, in dBm.
    Signal int

    // The number of times the station has had to retry while sending a packet.
    TransmitRetries int

    // The number of times a packet transmission failed.
    TransmitFailed int

    // The number of times a beacon loss was detected.
    BeaconLoss int

StationInfo contains statistics about a WiFi interface operating in station mode.


internal/nl80211Package nl80211 is an auto-generated package which contains constants and types used to access nl80211 information using generic netlink.

Package wifi imports 12 packages (graph) and is imported by 21 packages. Updated 2020-05-28. Refresh now. Tools for package owners.