如何在 macOS 上的 Swift 中获取当前 Wi-Fi SSID?

问题描述 投票:0回答:1

我正在尝试编写一个基本的 Swift 脚本来获取我在 macOS 上连接的 Wi-Fi 网络的名称。但是,即使连接到 Wi-Fi,它也会打印:

Not connected to any Wi-Fi network.

import Foundation
import CoreWLAN

// Create a Wi-Fi client instance
if let wifiClient = CWWiFiClient.shared().interface(),
   let ssid = wifiClient.ssid() {
    print("Connected to Wi-Fi: \(ssid)")
} else {
    print("Not connected to any Wi-Fi network.")
}

此外,我尝试使用以下 shell 命令:

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s

但返回弃用警告:

WARNING: The airport command line tool is deprecated and will be removed in a future release.
For diagnosing Wi-Fi related issues, use the Wireless Diagnostics app or the wdutil command line tool.

还有

networksetup -getairportnetwork en0

You are not associated with an AirPort network.

有没有办法解决此问题或替代方法来检索当前 Wi-Fi SSID 而不需要 sudo 访问

规格:

macOS Sequoia 15.0
Apple Silicon M3 Pro

主持人注意事项:您建议如何在 Swift 中获取当前连接的 Wifi 网络的 SSID | iOS 14?,但正如我的标题中所述,问题涉及 macOS 而不是 iOS。您提供的代码主要适用于 iOS,因为它使用 CoreLocation 来提供位置服务。另外,我的问题还涉及 shell 命令,这表明它可能与编程之外的其他因素有关。

swift macos shell terminal wifi
1个回答
0
投票
升级到 Sequoia 后,我的 python 脚本遇到了与您相同的问题。如果您能找到解决方案,请告诉我。

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