【问题标题】:Getting OSX Connected Wi-Fi Network Name获取 OSX 连接的 Wi-Fi 网络名称
【发布时间】:2011-01-19 21:24:28
【问题描述】:

我需要在 OSX 上获取当前连接的 Wi-Fi SSID 的名称。

我弄乱了 SystemConfiguration 框架,我觉得它就在那里(因为我能够获取网络位置的名称),但我并没有真正找到获取 Wi-Fi SSID 的方法。

不胜感激。 :)

谢谢。

【问题讨论】:

    标签: objective-c macos wifi ssid system-configuration


    【解决方案1】:

    对于 osX Yosemite 10.10 使用

    #import <CoreWLAN/CoreWLAN.h>
    
    -(void)prettyFunctionName
    {
      CWInterface* wifi = [[CWWiFiClient sharedWiFiClient] interface];
    
      NSLog(@"BSD if name: %@", wifi.interfaceName);
      NSLog(@"SSID: %@", wifi.ssid);
      NSLog(@"txRate: %f", wifi.transmitRate);
    }
    

    【讨论】:

    • 谢谢我一直在找这个:)
    【解决方案2】:

    您可以使用 CoreWLAN 框架:CWInterface 有一个名为 ssid 的属性。下面的代码获取当前的无线接口并显示它的 BSD 名称和它的 SSID。它适用于 Mac OS 10.6+。

    #import <Foundation/Foundation.h>
    #import <CoreWLAN/CoreWLAN.h>
    
    int main() {
        NSAutoreleasePool *pool = [NSAutoreleasePool new];
    
        CWInterface *wif = [CWInterface interface];
    
        NSLog(@"BSD if name: %@", wif.name);
        NSLog(@"SSID: %@", wif.ssid);
    
        [pool drain];
        return 0;
    }
    

    输出:

    $ ./wif
    BSD if name: en1
    SSID: Aetherius
    

    【讨论】:

    • 看起来不错。我一回家就会测试。
    • 按我的需要工作。谢谢!
    • 如果你有以太网连接怎么办?我想 WLANInterface 不会为此工作(显然),那又如何呢? :)
    • 在 OS 10.10 [CWInterface interface] 已被弃用。有人对改用什么有想法吗?
    • @irosenb clang 说你应该使用-[CWWiFiClient interface],但是我找不到它的任何文档,并且该类似乎不存在于 CoreWLAN 框架中。所以无论如何我都会使用+[CWInterface interface]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多