在iPhone上,是否可以找出我们连接的WIFI网络?

时间:2010-04-14 11:57:42

标签: iphone networking wifi detect ssid

如果是,我们是否还可以获得有关网络配置的其他信息?

执行此操作的一种有用方法是获取当前网络的SSID。是否有API可以做到这一点?

更新:我在这里找到了类似的问题:

Can the iPhone SDK obtain the Wi-Fi SSID currently connected to?

4 个答案:

答案 0 :(得分:2)

尝试以下方法:

#import <SystemConfiguration/CaptiveNetwork.h>

NSString *wifiName = @"Not Found";
CFArrayRef myArray = CNCopySupportedInterfaces();

if (myArray != nil) {

    CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));

    if (myDict != nil) {
        NSDictionary *dict = (NSDictionary*)CFBridgingRelease(myDict);

        wifiName = [dict valueForKey:@"SSID"];

    }  
}

NSLog(@"wifiName:%@", wifiName);

答案 1 :(得分:1)

(单独回答保存历史等)。

看起来您可能无法确定要连接的WLAN的SSID,至少在进入App Store的应用中是这样。 These people使用私有API - Preferences.framework - 来获取WLAN的详细信息(例如“它隐藏了吗?”“这是什么名字?”等。)

答案 2 :(得分:1)

无法发表评论,但这可能是重复的:

Accessing iPhone WiFi Information via SDK

答案似乎不是。我已经对此进行了自己的研究,并且无法找到获得SSID的支持方式。

答案 3 :(得分:0)

您是否看过Reachability示例应用?

编辑:Reachability应用程序演示如何使用SystemConfiguration框架来显示您的手机是否已连接到互联网,如果是,则显示如何。

它还允许您区分本地WiFi连接而不是(+ [Reachability reachabilityForLocalWiFi])。

关于你问题的内容,你必须查阅手机的ARP表。 This answer向您展示了如何做到这一点。