iphone ipad 获取wifi信息 BSSID SSID
2013-09-05 15:20
176 查看
首先,app如果要上app store是没有办法获取wifi列表的~
这些WIFI扫描软件使用了苹果的私有函数apple80211.framework
尽管不能合法(指能通过App Store的审核)的获取WIFI列表, 不过我们还是可以获取到当前Wifi连接的信息,比如SSID. BSSID
SSID全称Service Set IDentifier, 即Wifi网络的公开名称.
BSSID 是指站点的 MAC 地址.
苹果在IOS v4.1+版本上提供了公开的方法来获取该信息.
注意记得要在build phases中添加库SystemConfiguration.framework
ARC版本
输出结果
BSSID 正确格式是 00:04:c3:a1:2b:22 但是输出以后却是0:4:c3:a1:2b:22 少了头0,可用一下方法补0
- (NSString *)standardFormateMAC:(NSString *)MAC {
NSArray * subStr = [MAC componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@":-"]];
NSMutableArray * subStr_M = [[NSMutableArray alloc] initWithCapacity:0];
for (NSString * str in subStr) {
if (1 == str.length) {
NSString * tmpStr = [NSString stringWithFormat:@"0%@", str];
[subStr_M addObject:tmpStr];
} else {
[subStr_M addObject:str];
}
}
NSString * formateMAC = [subStr_M componentsJoinedByString:@":"];
[subStr_M release];
return [formateMAC uppercaseString];
}
这些WIFI扫描软件使用了苹果的私有函数apple80211.framework
尽管不能合法(指能通过App Store的审核)的获取WIFI列表, 不过我们还是可以获取到当前Wifi连接的信息,比如SSID. BSSID
SSID全称Service Set IDentifier, 即Wifi网络的公开名称.
BSSID 是指站点的 MAC 地址.
苹果在IOS v4.1+版本上提供了公开的方法来获取该信息.
注意记得要在build phases中添加库SystemConfiguration.framework
#import <SystemConfiguration/CaptiveNetwork.h> - (id)fetchSSIDInfo { NSArray *ifs = (id)CNCopySupportedInterfaces(); NSLog(@"%s: Supported interfaces: %@", __func__, ifs); id info = nil; for (NSString *ifnam in ifs) { info = (id)CNCopyCurrentNetworkInfo((CFStringRef)ifnam); NSLog(@"%s: %@ => %@", __func__, ifnam, info); if (info && [info count]) { break; } [info release]; } [ifs release]; return [info autorelease]; }
ARC版本
#import <SystemConfiguration/CaptiveNetwork.h>
- (id)fetchSSIDInfo { NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces(); NSLog(@"Supported interfaces: %@", ifs); id info = nil; for (NSString *ifnam in ifs) { info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam); NSLog(@"%@ => %@", ifnam, info); //单个数据info[@"SSID"]; info[@"BSSID"]; if (info && [info count]) { break; } } return info; }
输出结果
2013-09-05 10:32:00.655 wifiTest[3534:707] -[wifiTestAppDelegate fetchSSIDInfo]: Supported interfaces: ( en0 ) 2013-09-05 10:32:00.661 wifiTest [3534:707] -[wifiTestAppDelegate fetchSSIDInfo]: en0 => { BSSID = "0:4:c3:a1:2b:22"; SSID = wifiname; SSIDDATA = <01234567 76543210>; }
BSSID 正确格式是 00:04:c3:a1:2b:22 但是输出以后却是0:4:c3:a1:2b:22 少了头0,可用一下方法补0
- (NSString *)standardFormateMAC:(NSString *)MAC {
NSArray * subStr = [MAC componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@":-"]];
NSMutableArray * subStr_M = [[NSMutableArray alloc] initWithCapacity:0];
for (NSString * str in subStr) {
if (1 == str.length) {
NSString * tmpStr = [NSString stringWithFormat:@"0%@", str];
[subStr_M addObject:tmpStr];
} else {
[subStr_M addObject:str];
}
}
NSString * formateMAC = [subStr_M componentsJoinedByString:@":"];
[subStr_M release];
return [formateMAC uppercaseString];
}
相关文章推荐
- iPhone,iPad如何获取WIFI名称即SSID
- iPhone,iPad如何获取WIFI名称即SSID
- iPhone,iPad如何获取WIFI名称即SSID
- iPhone,iPad如何获取WIFI名称即SSID
- iPhone,iPad如何获取WIFI名称即SSID
- wifi 获取bssid,ssid,rssi
- 需求:获取iPhone当前Wi-Fi的SSID等网络信息
- iPhone获取WiFi的名称即SSID
- Android 获取本机的mac和wifi的BSSID(mac)以及其他信息
- 各代iphone ipad iPod各种信息 获取设备型号等等整理
- iOS 获取wifi SSID 、BSSID
- iOS开发中获取WiFi相关信息
- iOS 获取Wifi的SSID及MAC地址
- iPhone应用中如何获取硬件版本以及系统信息
- iphone中GPS精确定位及反向获取地址信息
- iOS - 硬件配置相关 - 获取WiFi的SSID(草稿)
- IOS -- 获取WIFI信息API
- WIFI项目--Android 获取本机IP(wifi下),子网掩码,网关,dns等信息
- 获取iphone的设备信息
- 获取iPhone一些相关信息