【IOS】获取wifi名称 (即SSID)

iOS 获取wifi ssid 名称

SSID全称Service Set IDentifier, 即Wifi网络的公开名称.在IOS 4.1以上版本提供了公开的方法来获取该信息.

首先添加框架:SystemConfiguration.framework

 1 #import <SystemConfiguration/CaptiveNetwork.h>
 2  - (id)fetchSSIDInfo
 3 {
 4     NSArray *ifs = (id)CNCopySupportedInterfaces();
 5     NSLog(@"%s: Supported interfaces: %@", __func__, ifs);
 6     id info = nil;
 7     for (NSString *ifnam in ifs)
 8     {
 9         info = (id)CNCopyCurrentNetworkInfo((CFStringRef)ifnam);
10         NSLog(@"%s: %@ => %@", __func__, ifnam, info);
11         if (info && [info count])
12         {
13            break;
14         }
15         [info release];
16     }
17    [ifs release];
18    return [info autorelease];
19 }
20
21
22 - (NSString *)currentWifiSSID {
23     // Does not work on the simulator.
24     NSString *ssid = nil;
25     NSArray *ifs = (  id)CNCopySupportedInterfaces();
26     NSLog(@"ifs:%@",ifs);
27     for (NSString *ifnam in ifs) {
28         NSDictionary *info = (id)CNCopyCurrentNetworkInfo((CFStringRef)ifnam);
29         NSLog(@"dici:%@",[info  allKeys]);
30         if (info[@"SSIDD"]) {
31             ssid = info[@"SSID"];
32
33         }
34     }
35     return ssid;
36 }
37
38 - (void)viewDidLoad
39 {
40     [super viewDidLoad];
41
42     tempLabel=[[UILabel alloc]initWithFrame:CGRectMake(50, 40, 200, 40)];
43     tempLabel.textAlignment=NSTextAlignmentCenter;
44     [self.view addSubview:tempLabel];
45     NSDictionary *ifs = [self fetchSSIDInfo];
46     NSString *ssid = [[ifs objectForKey:@"SSID"] lowercaseString];
47     tempLabel.text=ssid;
48
49 }

log 信息 :

  1. 2013-06-05 21:39:14.357 wifiNameDemo[9877:707] dici:{
  2. BSSID = "f4:ec:38:40:cc:e8";
  3. SSID = "Nice_Apple";
  4. SSIDDATA = <4e696365 5f417070 6c65>;
  5. }
  6. 2013-06-05 21:39:14.360 wifiNameDemo[9877:707] Nice_Apple

ARC 版本:

 1 - (id)fetchSSIDInfo {
 2     NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();
 3     NSLog(@"Supported interfaces: %@", ifs);
 4     id info = nil;
 5     for (NSString *ifnam in ifs)
 6     {
 7         info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
 8         NSLog(@"%@ => %@", ifnam, info);
 9         if (info && [info count])
10         {
11             break;
12         }
13    }
14    return info;
15 }

效果如下:

iOS 取得WIFI的热点名称和MAC地址

 1 #import <SystemConfiguration/CaptiveNetwork.h>
 2
 3 NSString *ssid = @"Not Found";
 4
 5 NSString *macIp = @"Not Found";
 6 CFArrayRef myArray = CNCopySupportedInterfaces();
 7 if (myArray != nil) {
 8     CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));
 9     if (myDict != nil) {
10         NSDictionary *dict = (NSDictionary*)CFBridgingRelease(myDict);
11         ssid = [dict valueForKey:@"SSID"];
12         macIp = [dict valueForKey:@"BSSID"];
13     }
14 }
15 UIAlertView *av = [[UIAlertView alloc] initWithTitle:ssid
16                                              message:macIp
17                                             delegate:nil
18                                    cancelButtonTitle:nil
19                                    otherButtonTitles:@"OK", nil];
20 [av show];
时间: 2024-08-27 18:12:29

【IOS】获取wifi名称 (即SSID)的相关文章

iPhone,iPad如何获取WIFI名称即SSID

本文转载至 http://blog.csdn.net/wbw1985/article/details/20530281 2010年开始苹果清理了一批APP Store上的WIFI扫描软件, 缘由语焉不详. 这些WIFI扫描软件使用了苹果的私有函数apple80211.framework 尽管不能合法(指能通过App Store的审核)的获取WIFI列表, 不过我们还是可以获取到当前Wifi连接的信息,比如SSID. SSID全称Service Set IDentifier, 即Wifi网络的公开

iOS 获取 WiFi 列表

IOS 获取 WIFi列表有2016 /11 / 10 之后就不用申请权限了  Apple 官方邮件回复: Thank you for requesting information about the Network Extension framework. Please note that as of November 10, 2016 this process is not required for developers who wish to use App Proxy, Content

iOS获取WIFI的IP、子网掩码,以及域名转IP

获取WIFI需要的头文件: #import "GetCurrentIP.h" #import <ifaddrs.h> #import <arpa/inet.h> #import <SystemConfiguration/CaptiveNetwork.h> #include <netdb.h> #include <net/if.h> #import <dlfcn.h> #include <sys/socket.

IOS 获取wifi的SSID

#import <SystemConfiguration/CaptiveNetwork.h> - (NSString *)currentWifiSSID { // Does not work on the simulator. NSString *ssid = nil; NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces(); for (NSString *ifnam in ifs) { NSDictionary *in

iOS 获取项目名称及版本号

可用于版本让用户手动检测是否有版本更新可用. NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];  CFShow(infoDictionary); // app名称  NSString *app_Name = [infoDictionary objectForKey:@"CFBundleDisplayName"];  // app版本  NSString *app_Version = [infoD

IOS 获取,如电量,CPU,型号等

IOS 获取,如电量,CPU,型号等 电池信息可以从UIDevice batteryLevel得到,但是只能精确到0.05.- (NSDictionary*)batteryLevel{CFTypeRef blob = IOPSCopyPowerSourcesInfo();        CFArrayRef sources = IOPSCopyPowerSourcesList(blob);                CFDictionaryRef pSource = NULL;       

iOS 12中无法获取WiFi的SSID了?

1.现象描述 2018年苹果升级iOS12之后,没有办法获取wifi名称等信息. 2.获取wifi信息 2.1 获取代码 /************ 控制器的view 加载完毕 的时候调用 *****************************/ - (void)viewDidLoad { [super viewDidLoad]; // 获取网络信息 NSDictionary *netInfo = [self fetchNetInfo]; NSString *SSID = [netInfo

Android获取当前连接的wifi名称

首先AndroidMainfest.xml文件中添加权限: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 获取WIFI信息状态的权限 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 获取网络状态改变的

ios获取当前wifi热点信息

#pragma mark - 获取当前连接wifi信息 - (NSString *)returnWifiName { NSString *wifiName = @"Not Found"; CFArrayRef myArray = CNCopySupportedInterfaces(); if (myArray != nil) { CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArra