Golang API来WPA请求者

问题描述 投票:-2回答:1

我需要将无头物联网设备(Raspberry Pi)连接到Wi-Fi网络。我使用YoctoProject构建了自定义Linux。我没有安装connman或Network Manager。只有WPA请求者。我的服务是用Golang编写的。

调用wpa_cli太棘手且不可靠。尝试一些可用的包,我决定自己编写。请参阅下面的答案。

go dbus wpa-supplicant
1个回答
-2
投票

回答我自己的问题......

wpa-connect - 用于将Linux设备连接到Wi-Fi网络的API(Golang)

该软件包是作为物联网项目的一部分开发的,目的是为无线Raspberry Pi设备添加Wi-Fi连接。无需安装connman或Network Manager。 wpa-connect通过D-Bus(Linux消息总线系统)与WPA请求者通信。

Github存储库https://github.com/mark2b/wpa-connect

示例连接到Wi-Fi网络

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)
}

扫描Wi-Fi网络

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)
    }
}

根据MIT许可证发布的包。

© www.soinside.com 2019 - 2024. All rights reserved.