2012-12-17 84 views
2

嗨,我正在寻找一个简单的代码来读取SSID, 我发现了很多关于“SystemConfiguration/CaptiveNetwork.h” 的信息,但我怎么能使用它,我不'不了解它。 对不起,我是一个新的Objective-C程序员。 你有一个很好的例子或教程来理解它。 我试过从苹果公司可到达,但他们不适用于字典。简单的代码来从网络获取SSID

感谢您的帮助

回答

1

谢谢@helming,在这儿,这样一来就不会编译成二进制模拟器+添加到CFRelease电话:

#if !TARGET_IPHONE_SIMULATOR 
    CFArrayRef interfaces = CNCopySupportedInterfaces(); 
    CFDictionaryRef networkInfo = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(interfaces, 0)); 
    NSString *ssid = CFDictionaryGetValue(networkInfo, @"SSID"); 
    CFRelease(interfaces); 
    CFRelease(networkInfo); 
#endif 
+0

你能告诉我如何从路由器,网关获取IP地址吗? – J0k3R

+0

对于ip,请参阅此主题:http://stackoverflow.com/questions/7072989/iphone-ipad-osx-how-to-get-my-ip-address-programmatically –

1
CFArrayRef myArray = CNCopySupportedInterfaces(); 
CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0)); 
NSString *ssid = CFDictionaryGetValue(myDict, @"SSID"); 
+0

感谢您的帮助和更正后 – J0k3R

+1

不要忘记发布复制的Core Foundation对象,ARC不会为你处理这些事情。 'CFRelease(myArray); CFRelease(myDict);' –

+0

另请注意,这在模拟器上不起作用,'CNCopySupportedInterfaces()'将返回null –