【问题标题】:Golang API to WPA SupplicantGolang API 到 WPA 请求者
【发布时间】:2019-02-07 22:20:25
【问题描述】:

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

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

【问题讨论】:

  • 你能用这个创建一个rest api吗?我想在 PI 上运行一个 Rest API,以便我可以更改并获取客户端内所有可用的 Wifi。

标签: go dbus wpa-supplicant


【解决方案1】:

回答我自己的问题...

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

此软件包是作为 IoT 项目的一部分开发的,目的是为无头 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 许可下发布的包。

【讨论】:

  • 这不是宣传您自己的代码的地方(即使它可能有用),尤其是不能作为您自己问题的答案,也没有提及这是您的代码。
猜你喜欢
  • 2015-05-16
  • 1970-01-01
  • 2017-10-15
  • 1970-01-01
  • 2020-05-21
  • 2016-11-19
  • 2016-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多