iOS 判断是否设置代理
来源:互联网 发布:juniper network mac 编辑:程序博客网 时间:2024/06/05 09:14
只要是网络设置了代理,那么就禁止一切网络访问,这里记录一下如何判断是否设置了代理。
需要导入框架CFNetwork
然后,这个方法是mrc的:需要添加-fno-objc-arc的flag
代码如下:
#import "CETCProxyStatus.h"@implementation CETCProxyStatus+ (BOOL)getProxyStatus { NSDictionary *proxySettings = NSMakeCollectable([(NSDictionary *)CFNetworkCopySystemProxySettings() autorelease]); NSArray *proxies = NSMakeCollectable([(NSArray *)CFNetworkCopyProxiesForURL((CFURLRef)[NSURL URLWithString:@"http://www.baidu.com"], (CFDictionaryRef)proxySettings) autorelease]); NSDictionary *settings = [proxies objectAtIndex:0]; NSLog(@"host=%@", [settings objectForKey:(NSString *)kCFProxyHostNameKey]); NSLog(@"port=%@", [settings objectForKey:(NSString *)kCFProxyPortNumberKey]); NSLog(@"type=%@", [settings objectForKey:(NSString *)kCFProxyTypeKey]); if ([[settings objectForKey:(NSString *)kCFProxyTypeKey] isEqualToString:@"kCFProxyTypeNone"]) { //没有设置代理 return NO; } else { //设置代理了 return YES; }}@end
考虑到检测代理的消耗,测试了一下代码的时间,大概0.7ms
//计算一段代码执行时间CFAbsoluteTime startTime =CFAbsoluteTimeGetCurrent(); //在这写入要计算时间的代码 ... CFAbsoluteTime linkTime = (CFAbsoluteTimeGetCurrent() - startTime); //打印出来为代码执行时间 单位msNSLog(@"Linked in %f ms", linkTime *1000.0);
阅读全文
0 0
- iOS 判断是否设置代理
- android 判断是否需要设置代理
- 判断IOS设置是否越狱代码
- iOS 判断定位是否允许_跳转定位设置界面
- ios 判断用户是否开启定位权限并跳转设置
- php判断是否使用代理
- 判断代理是否为空
- iOS 判断是否是否静音
- iOS判断是否联网
- IOS 设置代理
- 怎样快速判断代理ip是否可用
- 判断代理方法是否被实现
- 判断代理方法是否为空
- Android 判断设备 是否使用代理上网
- 判断代理是否实现某种方法
- 判断使用的代理IP是否有用
- 判断Android是否设置密码
- php判断session是否设置
- 上传文件样式修改
- SQLServer 2008以上误操作数据库恢复方法——日志尾部备份
- DNA Sorting(暴力+排序)
- 2017.9.27 可持久化并查集 失败总结
- 解决MyEclipse开启后总是不停的在Update index
- iOS 判断是否设置代理
- Android Java小知识点集锦
- LIVE555再学习 -- live555实现RTSP直播服务器 分析
- 嵌入式软件架构设计----中控机NIOS软件系统架构设计说明书
- ajax请求接收返回json数据
- 移动测试智能化实践
- osgearth介绍
- 利用jquery的animae属性优化锚点跳转太快的问题
- javascript 小球碰撞