使用NSURLSession
时,我需要获取当前请求的连接服务器IP地址。
有哪些可用的方法?
我正在尝试使用
-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didFinishCollectingMetrics:(NSURLSessionTaskMetrics *)metrics
但它似乎没有目标IP地址。
How can I get the exactly ip address which used to connect in iOS?的补充:
我的需求是监视现有项目中的网络性能,因此无法将NSURLsesion
替换为CFNetwork
。
还是有人可以告诉我如何挂钩或使用下级方向?
提前谢谢!
答案 0 :(得分:0)
我已经在
中收集了这些数据 -(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didFinishCollectingMetrics:(NSURLSessionTaskMetrics *)metric
不幸的是,它是一个私有api。
代码是:
SEL selector = NSSelectorFromString(@"_timingData");
NSDictionary *timingData = nil;
if ([task respondsToSelector:selector]) {
timingData = [task performSelector:selector];
}
NSString *remoteServerIP = @"";
if (timingData && [timingData isKindOfClass:[NSDictionary class]]) {
NSString *key = @"_kCFNTimingDataRemoteAddressAndPort";
remoteServerIP = timingData[key];
}