我正在尝试编写一个基本的 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 命令,这表明它可能与编程之外的其他因素有关。