2010年开始苹果清理了一批APP Store上的WIFI扫描软件, 缘由语焉不详.
这些WIFI扫描软件使用了苹果的私有函数apple80211.framework
尽管不能合法(指能通过App Store的审核)的获取WIFI列表, 不过我们还是可以获取到当前Wifi连接的信息,比如SSID.
SSID全称Service Set IDentifier, 即Wifi网络的公开名称.
苹果在IOS v4.1+版本上提供了公开的方法来获取该信息.
示范代码如下:
-
#import<SystemConfiguration/CaptiveNetwork.h>
-
-
-(id)fetchSSIDInfo
-
{
-
NSArray*ifs=(id)CNCopySupportedInterfaces();
-
NSLog(@"%s:Supportedinterfaces:%@",__func__,ifs);
-
idinfo=nil;
-
for(NSString*ifnaminifs){
-
info=(id)CNCopyCurrentNetworkInfo((CFStringRef)ifnam);
-
NSLog(@"%s:%@=>%@",__func__,ifnam,info);
-
if(info&&[infocount]){
-
break;
-
}
-
[inforelease];
-
}
-
[ifsrelease];
-
return[infoautorelease];
-
}
对于ARC版本, 代码可简化如下:
-
-(id)fetchSSIDInfo{
-
NSArray*ifs=(__bridge_transferid)CNCopySupportedInterfaces();
-
NSLog(@"Supportedinterfaces:%@",ifs);
-
idinfo=nil;
-
for(NSString*ifnaminifs){
-
info=(__bridge_transferid)CNCopyCurrentNetworkInfo((__bridgeCFStringRef)ifnam);
-
NSLog(@"%@=>%@",ifnam,info);
-
if(info&&[infocount]){break;}
-
}
-
returninfo;
-
}
参考链接:
1. http://stackoverflow.com/questions/5198716/iphone-get-ssid-without-private-library
2. http://answers.yahoo.com/question/index?qid=20100529040141AAKd8dO
SSID全称Service Set IDentifier, 即Wifi网络的公开名称.在IOS 4.1以上版本提供了公开的方法来获取该信息.
-
#import<SystemConfiguration/CaptiveNetwork.h>
-
-(id)fetchSSIDInfo
-
{
-
NSArray*ifs=(id)CNCopySupportedInterfaces();
-
NSLog(@"%s:Supportedinterfaces:%@",__func__,ifs);
-
idinfo=nil;
-
for(NSString*ifnaminifs){
-
info=(id)CNCopyCurrentNetworkInfo((CFStringRef)ifnam);
-
if(info&&[infocount]){
-
break;
-
}
-
[inforelease];
-
}
-
[ifsrelease];
-
return[infoautorelease];
-
}
-
-
-(NSString*)currentWifiSSID{
-
//Doesnotworkonthesimulator.
-
NSString*ssid=nil;
-
NSArray*ifs=(id)CNCopySupportedInterfaces();
-
NSLog(@"ifs:%@",ifs);
-
for(NSString*ifnaminifs){
-
NSDictionary*info=(id)CNCopyCurrentNetworkInfo((CFStringRef)ifnam);
-
NSLog(@"dici:%@",[infoallKeys]);
-
if(info[@"SSIDD"]){
-
ssid=info[@"SSID"];
-
-
}
-
}
-
returnssid;
-
}
-
-
-(void)viewDidLoad
-
{
-
[superviewDidLoad];
-
-
tempLabel=[[UILabelalloc]initWithFrame:CGRectMake(50,40,200,40)];
-
tempLabel.textAlignment=NSTextAlignmentCenter;
-
[self.viewaddSubview:tempLabel];
-
NSDictionary*ifs=[selffetchSSIDInfo];
-
NSString*ssid=[[ifsobjectForKey:@"SSID"]lowercaseString];
-
tempLabel.text=ssid;
-
-
}
log 信息 :
-
2013-06-0521:39:14.357wifiNameDemo[9877:707]dici:{
-
BSSID="f4:ec:38:40:cc:e8";
-
SSID="Nice_Apple";
-
SSIDDATA=<4e6963655f4170706c65>;
-
}
-
2013-06-0521:39:14.360wifiNameDemo[9877:707]Nice_Apple
ARC 版本:
-
-(id)fetchSSIDInfo{
-
NSArray*ifs=(__bridge_transferid)CNCopySupportedInterfaces();
-
NSLog(@"Supportedinterfaces:%@",ifs);
-
idinfo=nil;
-
for(NSString*ifnaminifs){
-
info=(__bridge_transferid)CNCopyCurrentNetworkInfo((__bridgeCFStringRef)ifnam);
-
NSLog(@"%@=>%@",ifnam,info);
-
if(info&&[infocount]){break;}
-
}
-
returninfo;
-
}
效果如下:
-
#import<SystemConfiguration/CaptiveNetwork.h>
-
-(id)fetchSSIDInfo
-
{
-
NSArray*ifs=(id)CNCopySupportedInterfaces();
-
NSLog(@"%s:Supportedinterfaces:%@",__func__,ifs);
-
idinfo=nil;
-
for(NSString*ifnaminifs){
-
info=(id)CNCopyCurrentNetworkInfo((CFStringRef)ifnam);
-
if(info&&[infocount]){
-
break;
-
}
-
[inforelease];
-
}
-
[ifsrelease];
-
return[infoautorelease];
-
}
-
-
-(NSString*)currentWifiSSID{
-
//Doesnotworkonthesimulator.
-
NSString*ssid=nil;
-
NSArray*ifs=(id)CNCopySupportedInterfaces();
-
NSLog(@"ifs:%@",ifs);
-
for(NSString*ifnaminifs){
-
NSDictionary*info=(id)CNCopyCurrentNetworkInfo((CFStringRef)ifnam);
-
NSLog(@"dici:%@",[infoallKeys]);
-
if(info[@"SSIDD"]){
-
ssid=info[@"SSID"];
-
-
}
-
}
-
returnssid;
-
}
-
-
-(void)viewDidLoad
-
{
-
[superviewDidLoad];
-
-
tempLabel=[[UILabelalloc]initWithFrame:CGRectMake(50,40,200,40)];
-
tempLabel.textAlignment=NSTextAlignmentCenter;
-
[self.viewaddSubview:tempLabel];
-
NSDictionary*ifs=[selffetchSSIDInfo];
-
NSString*ssid=[[ifsobjectForKey:@"SSID"]lowercaseString];
-
tempLabel.text=ssid;
-
-
}
log 信息 :
-
2013-06-0521:39:14.357wifiNameDemo[9877:707]dici:{
-
BSSID="f4:ec:38:40:cc:e8";
-
SSID="Nice_Apple";
-
SSIDDATA=<4e6963655f4170706c65>;
-
}
-
2013-06-0521:39:14.360wifiNameDemo[9877:707]Nice_Apple
ARC 版本:
-
-(id)fetchSSIDInfo{
-
NSArray*ifs=(__bridge_transferid)CNCopySupportedInterfaces();
-
NSLog(@"Supportedinterfaces:%@",ifs);
-
idinfo=nil;
-
for(NSString*ifnaminifs){
-
info=(__bridge_transferid)CNCopyCurrentNetworkInfo((__bridgeCFStringRef)ifnam);
-
NSLog(@"%@=>%@",ifnam,info);
-
if(info&&[infocount]){break;}
-
}
-
returninfo;
-
}
效果如下:
分享到:
相关推荐
android,demo,获取Wifi名称即SSID
本文实例讲述了Android编程获取Wifi名称(SSID)的方法。分享给大家供大家参考,具体如下: 可以使用WifiManager和WifiInfo来获取当前Wifi连接信息 WifiManager wifiManager = (WifiManager) getSystemService(WIFI_...
C#利用ManagedWifi获取当前已经连接的WIFI的名称(SSID)。全部C#源代码,vs2008工程,可编译和测试。
由于在网上木有搜索到怎么获取wifi热点的用户名和密码,只好自己动手,本demo包含获取wifi热点的用户名、密码、mac、ip等,拿出来分享下(亲测android4.4可用)!欢迎下载。
Linux C语言获取WIFISSDI(去重复,去空) 扫描SSID实现;连接SSID;网卡启用工具
在macOS的菜单栏中显示当前连接的WiFi名称 (SSID)
主要介绍了解决iOS13 无法获取WiFi名称(SSID)问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
1.、运行QT程序显示搜索到的wifi 2、获取wifi名称,在edit框输入密码 3、最后修改wifi配置文件,并使配置文件生效即可 4、QT4/QT5均支持
脚本无需设置ros无线路由器,把对应的脚本粘贴到路由器脚本里面。...多种方案可选,无线路由器可直接刷多WiFi,SSID为各大路由器名字,有线的可配合AP使用。 成品代码,不是半成品也不是路由备份锁后台的。
利用百度地图API开发的实现wifi定位,可以获取所在位置的经纬度和具体的地理位置,由于获取的具体地理位置没有在地图上显示,所以要通过抓取log来查看具体获取的地理位置。
本等程序可以扫描WIFI无线网络列表,连接无线网络,断开无线网络,刷新无线网络列表,显示SSID名称,WIFI信号,加密类型
SSID全称Service Set IDentifier, 即Wifi网络的公开名称.在IOS 4.1以上版本提供了公开的方法来获取该信息. 但是最近,Apple于北京时间9月17日晚在官网发布了Xcode 10正式版,QiShare团队成员于9月18日中午统一升级以...
查找wifi的ssid 信号强度,通道等
指定ssid和密码及连接类型使用命令控制开关连接WiFi,对于部分无屏幕或者屏幕异常的移动设备,可使用命令开启连接WiFi
Android wifi 获取信号 ssid 强度 等 可自动刷新
DiscoverHiddenSSID-发现隐藏 wifi 热点 SSID
Android下自动连接指定SSID的WIFI的简单实现的demo, 需求分析:在很多的智能设备上并没有可用于交互的界面。这种情形在智能设备就可以提供指定SSID和密码的wifi自动连接。
打开后输入IP地址范围,然后程序会自动连接这些ip地址,若IP地址打开了23端口且为弱密码就能连上,然后程序会自动传送wlctl show命令获取wifi ssid和key,并且保存在d盘下的txt上。想获取周围的wifi密码可以试一试本...
这个Demo演示了在Android中WIFI的基本操作,包括扫描wifi,连接wifi,获得wifi名称.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。