Golang API 到 WPA 请求方

标签 go dbus wpa-supplicant

我需要将 headless 物联网设备 (Raspberry Pi) 连接到 Wi-Fi 网络。我有使用 YoctoProject 构建的自定义 Linux。我没有安装 connmanNetwork Manager。只有 WPA Supplicant。 我的服务是用 Golang 编写的。

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

最佳答案

回答我自己的问题...

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

此软件包是作为 IoT 项目的一部分开发的,目的是为 headless Raspberry Pi 类设备添加 Wi-Fi 连接。无需安装connmanNetwork Managerwpa-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 许可证发布的包。

关于Golang API 到 WPA 请求方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52139925/

相关文章:

javascript - ReactJS Axios 和 Go API 之间的请求

linux - Kubernetes Pod : Failed to get D-Bus Connection

linux - 尝试使用 wpa supplicant 在 eap-tls 模式下设置 freeradius

linux - 在 ifconfig wlan0 up 上停止自动连接

go - 如何使用 Go Web 服务器提供静态 html 文件?

尽管有锁,Go 仍检测到 map 上的并发读写

go - 使用proto_path运行protoc以生成Gocode时出现问题

c++ - 在 catch-all 回调中识别来自 QDBusPendingCallWatcher 的原始调用

python - 如何检测USB键盘是否插拔

python - 编写一个与 wpa_supplicant 交互的外部程序