高效iOS设备公共Wi-Fi连接策略指南

更新:11-09 名人轶事 我要投稿 纠错 投诉

很多朋友对于高效iOS设备公共Wi-Fi连接策略指南和不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

基础信息获取

1. 获取IP用于获取ip等系列函数的头文件

#include#include#include#include#import 外网可见的IP地址

- (NSString *)whatismyipdotcom{

NSError *错误;

NSURL *ipURL=[NSURL URLWithString:@"http://www.whatismyip.com/automation/n09230945.asp"];

NSString *ip=[NSString stringWithContentsOfURL:ipURL 编码:1 error:error];

返回ip ? ip : [错误本地化描述];

}本地wifi的IP地址

+ (NSString *)本地IP地址

{

NSString *localIP=nil;

结构ifaddrs *addrs;

if (getifaddrs(addrs)==0) {

const struct ifaddrs *cursor=addrs;

while (光标!=NULL) {

if (cursor-ifa_addr-sa_family==AF_INET (cursor-ifa_flags IFF_LOOPBACK)==0)

{

NSString *name=[NSString stringWithUTF8String:cursor-ifa_name];

if ([name isEqualToString:@"en0"]) //Wi-Fi 适配器

{

localIP=[NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)cursor-ifa_addr)-sin_addr)];

休息;

}

}

光标=光标-ifa_next;

}

freeifaddrs(地址);

}

返回本地IP;

}2. 获取网卡信息- (NSDictionary *)getWIFIDic

{

CFArrayRef myArray=CNCopySupportedInterfaces();

if (myArray !=nil) {

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

如果(myDict!=nil){

NSDictionary *dic=(NSDictionary*)CFBridgingRelease(myDict);

返回迪克;

}

}

返回零;

}

- (NSString *)获取BSSID

{

NSDictionary *dic=[self getWIFIDic];

if (dic==nil) {

返回零;

}

返回dic[@"BSSID"];

}

- (NSString *)获取SSID

{

NSDictionary *dic=[self getWIFIDic];

if (dic==nil) {

返回零;

}

返回dic[@"SSID"];

}

认证过程中的问题

1. Portal禁止弹出与WIFI自动关闭的问题正常情况下,用户使用iPhone连接Portal认证的路由器。连接成功后,iOS系统会在现有列表中随机选择指定的URL(例如:www.itools.info)来测试当前路由器是否需要Portal认证。在需要Portal认证的网络中,系统会弹出Portal页面。此时,如果关闭门户页面或直接切换到其他应用程序,WIFI网络将自动断开。

解决办法是将路由器列入白名单,让路由器释放所有Portal测试IP。以下是经过测试的域名:

www.appleiphonecell.com

captive.apple.com

www.itools.info

ibook.info

www.机场.us

www.thinkother.us

对应IP地址:

23.207.103.91

23.33.54.18

23.44.167.91

23.67.183.91

96.7.103.91

23.42.71.91

23.34.105.211

23.59.167.91

23.42.184.50

23.47.232.190

23.77.23.91

23.194.87.91

23.61.91.190

23.218.12.50

2095年2月38日

23.46.135.91

172.225.213.179

218.205.66.94

23.64.251.249

23.58.250.189

将以上IP全部添加到路由器白名单中可以解决iPhone断开WIFI的问题,但同时不会自动弹出Portal页面,只有用户打开时才会被重定向到Portal页面浏览器。

2. 已知WIFI名解决方法如果确定了公司部署的公共WIFI名称,则比较简单。无需配置上述白名单,保证WIFI不断开。具体方法是在程序启动时向iOS系统注册SSID。方法如下:

//注册SSID。注意,多次调用该方法时,最后一次有效。

- (void)registerNetworkOnlyOneSSIDValidate:(NSString *)ssid

{

[自我注册网络:@[ssid]];

}

//注册多个SSID,多次调用,最后一次有效

- (void)registerNetwork:(NSArray *)ssidStringArray

{

CFArrayRef ssidCFArray=(__bridge CFArrayRef)ssidStringArray;

if(!CNSetSupportedSSIDs(ssidCFArray)) {

返回;

}

CFArrayRef 接口=CNCopySupportedInterfaces();

for (int i=0; i CFArrayGetCount(接口); i++) {

CFStringRef 接口=CFArrayGetValueAtIndex(interfaces, i);

CNMarkPortalOnline(界面);

}

用户评论

如你所愿

终于有个好办法在外面用免费WiFi了!

    有11位网友表示赞同!

顶个蘑菇闯天下i

苹果手机终于不用再担心公网安全的事了吧。

    有10位网友表示赞同!

断桥残雪

希望这个解决方案能稳定好用,别到时候还不如旧的方法。

    有17位网友表示赞同!

她的风骚姿势我学不来

这下可以用 iPhone 在旅行时上网都没问题了。

    有13位网友表示赞同!

矜暮

一直想找一个好的公共WiFi解决方案,希望能体验一下。

    有7位网友表示赞同!

水波映月

这块功能之前就一直缺失啊,终于有了!

    有5位网友表示赞同!

墨染年华

苹果的安全性一直都做得比安卓好,这次也不例外吧。

    有5位网友表示赞同!

相知相惜

不知道这个解决方案收费吗?要是免费就好了。

    有10位网友表示赞同!

你tm的滚

现在很多公共场所都有WiFi,但连接起来总觉得不安稳。

    有16位网友表示赞同!

寂莫

希望能提高网速,不然就太慢了!

    有14位网友表示赞同!

浅笑√倾城

终于可以不用再担心数据流量的问题!

    有8位网友表示赞同!

我家的爱豆是怪比i

希望这个解决方案能兼容各种公网WiFi接口。

    有6位网友表示赞同!

葵雨

这对于经常出差的人来说是个福音啊~

    有11位网友表示赞同!

无关风月

看起来苹果越来越注重用户的使用体验了

    有5位网友表示赞同!

夏以乔木

终于可以放心在咖啡店、餐厅等地使用Wi-Fi了!

    有17位网友表示赞同!

余温散尽ぺ

不知道这个解决方案会不会和其他安全软件冲突?

    有5位网友表示赞同!

苏莫晨

期待这款新功能上线,可以用更安全的方式上网。

    有20位网友表示赞同!

←极§速

之前连接公共WiFi总担心信息泄露,希望这个解决方案能让大家安心!

    有17位网友表示赞同!

【高效iOS设备公共Wi-Fi连接策略指南】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活

上一篇:探索2018:年度回顾与展望 下一篇:闵氏四字词汇36种类型(第十一式)——彼鼠此雀