Golang API至WPA请求人

Golang API至WPA请求人,go,dbus,wpa-supplicant,Go,Dbus,Wpa Supplicant,我需要将无头物联网设备(Raspberry Pi)连接到Wi-Fi网络。我使用YoctoProject构建了定制Linux。我没有安装connman或网络管理器。只有WPA请求者。 我的服务是用戈朗语写的 调用wpa_cli太棘手而且不可靠。 尝试了几个可用的软件包,我决定写我自己的。 答案见下文 回答我自己的问题 wpa connect-用于将Linux设备连接到Wi-Fi网络(Golang)的API 该软件包是作为物联网项目的一部分开发的,目的是为无头树莓Pi类设备添加Wi-Fi连接。无需安

我需要将无头物联网设备(Raspberry Pi)连接到Wi-Fi网络。我使用YoctoProject构建了定制Linux。我没有安装connman网络管理器。只有WPA请求者。 我的服务是用戈朗语写的

调用wpa_cli
太棘手而且不可靠。 尝试了几个可用的软件包,我决定写我自己的。
答案见下文

回答我自己的问题

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

该软件包是作为物联网项目的一部分开发的,目的是为无头树莓Pi类设备添加Wi-Fi连接。无需安装connman网络管理器。 wpa connect通过D总线(linux消息总线系统)与wpa请求者通信

Github存储库

例子 连接到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许可证发布的软件包。

这不是一个宣传您自己的代码的地方(即使它可能有用),尤其不是作为您自己问题的答案,也没有提到这是您的代码。您可以使用它创建rest api吗?我想在PI上运行RESTAPI,这样我就可以更改并获取客户端中所有可用的Wifi。