wpaconnect

package module
v0.0.0-...-58b6609 Latest Latest
Warning

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

Go to latest
Published: Oct 16, 2019 License: MIT Imports: 8 Imported by: 0

README

wpa-connect

Package provides API for connection Linux device to Wi-Fi Network.

wpa-connect communicates with WPA supplicant over D-Bus (linux message bus system).

This package was developed as part of IoT project in order to add Wi-Fi connectivity to headless Raspberry Pi like devices. No need for connman or Network Manager be installed.

Setup

On Linux:

wpa_supplicant service should run with -u flag in order to enable DBus interface. Run it as Linux service before first call to wpa_supplicant. Otherwise system will start it automatically without -u flag.

Systemd service configuration file - /etc/systemd/system/wpa_supplicant@wlan0.service

[Unit]
Description=WPA supplicant for %i

[Service]
ExecStart=/usr/sbin/wpa_supplicant -u -i%i -c/etc/wpa_supplicant.conf -Dwext

[Install]
WantedBy=multi-user.target

On Project:

go get github.com/mark2b/wpa-connect

Usage

Please see godoc.org for documentation. (Not ready yet)

Examples

Connect to Wi-Fi network
import wifi "github.com/mark2b/wpa-connect"

if conn, err := wifi.ConnectManager.Connect(ssid, password, time.Second * 60); err == nil {
	fmt.Println("Connected", conn.NetInterface, conn.SSID, conn.IP4.String(), conn.IP6.String())
} else {
	fmt.Println(err)
}
Scan for Wi-Fi networks
import wifi "github.com/mark2b/wpa-connect"

if bssList, err := wifi.ScanManager.Scan(); err == nil {
	for _, bss := range bssList {
		print(bss.SSID, bss.Signal, bss.KeyMgmt)
	}
}

Package release under a MIT license.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SetDebugMode

func SetDebugMode()

func SetInfoMode

func SetInfoMode()

func SetSilentMode

func SetSilentMode()

func SetVerboseMode

func SetVerboseMode()

Types

type BSS

type BSS struct {
	BSSID     string
	SSID      string
	KeyMgmt   []string
	WPS       string
	Frequency uint16
	Signal    int16
	Age       uint32
	Mode      string
	Privacy   bool
}

type ConnectManager

type ConnectManager struct {
	NetInterface string
	// contains filtered or unexported fields
}

func (*ConnectManager) Connect

func (self *ConnectManager) Connect(ssid string, password string, timeout time.Duration) (connectionInfo ConnectionInfo, e error)

func (*ConnectManager) Disconnect

func (self *ConnectManager) Disconnect(ssid string, timeout time.Duration) (r bool, e error)

type ConnectionInfo

type ConnectionInfo struct {
	NetInterface string
	SSID         string
	IP4          net.IP
	IP6          net.IP
}

type ScanManager

type ScanManager struct {
	NetInterface string
	// contains filtered or unexported fields
}

func (*ScanManager) Scan

func (self *ScanManager) Scan() (bssList []BSS, e error)

Directories

Path Synopsis
examples
internal
log

Jump to

Keyboard shortcuts

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