You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python获取Raspberry Pi当前连接的WiFi/有线网络名称

树莓派获取当前连接网络名称实现方案

以下方案适配大部分Raspberry Pi OS版本,你可以根据你的系统环境选择对应方法:

方案1:适用于Raspberry Pi OS Bookworm及之后版本(默认使用NetworkManager管理网络)

直接调用nmcli命令即可快速拿到结果:

  • 获取当前连接的WiFi名称:
    nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d':' -f2
  • 获取当前连接的有线网络名称:
    nmcli -g GENERAL.CONNECTION device show 有线接口名

    你可以通过ip link命令查询系统的有线接口名,通常为end0或eth0

如果你的kiosk系统是用Python开发的,可以直接用subprocess调用命令获取结果,示例代码如下:

import subprocess

def get_current_network_name():
    # 优先获取WiFi SSID
    try:
        wifi_result = subprocess.run(
            ["nmcli", "-t", "-f", "active,ssid", "dev", "wifi"],
            capture_output=True,
            text=True,
            check=True
        )
        for line in wifi_result.stdout.strip().split("\n"):
            if line.startswith("yes:"):
                return line.split(":", 1)[1]
    except subprocess.SubprocessError:
        pass

    # WiFi未连接时获取有线网络名称
    try:
        eth_result = subprocess.run(
            ["nmcli", "-g", "GENERAL.CONNECTION", "device", "show", "end0"],
            capture_output=True,
            text=True,
            check=True
        )
        eth_name = eth_result.stdout.strip()
        if eth_name and eth_name != "--":
            return eth_name
    except subprocess.SubprocessError:
        pass

    return "未识别网络"

方案2:适用于Raspberry Pi OS Bullseye及更早版本(默认使用dhcpcd管理网络)

使用系统内置的轻量命令获取:

  • 获取当前连接的WiFi名称:
    iwgetid -r
    无输出则代表当前未连接WiFi
  • 获取当前连接的有线网络标识:
    可以先通过ip route | grep default | awk '{print $5}'拿到当前使用的有线接口名,直接返回{接口名} 有线网络即可满足展示需求,也可以读取/etc/dhcpcd.conf中对应接口的自定义配置名称

注意事项

  • 运行命令的用户需要加入netdev用户组才能获取网络信息,若你的kiosk程序使用非默认pi用户运行,执行sudo usermod -aG netdev 运行用户名配置权限即可
  • 如果你的系统同时连接了WiFi和有线网络,你可以根据自己的需求优先返回其中任意一种网络的名称

内容的提问来源于stack exchange,提问作者Werbrouck Bram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 01:39:02