IOS网络篇19之CloundXNS域名解析

来源:互联网 发布:剑网三霸刀捏脸数据 编辑:程序博客网 时间:2024/05/20 16:11

这里使用Wireshark 查看命令:

http.host contains hunantv 所有的host中带有这个字符的都会现实出来。

ip.dst eq 119.12.xx.yy 所有的dst目的ip地址都会显示出来。

提到域名解析这里就不得不要再说说XNS。

传统DNS会有以下问题:

(1)不分区,不能更加细腻的对资源进行分区管理、自定义管理。

(2)TTL时间不准确

(3)经过解析之后的资源被污染,比如给你插播一条广告。

(4)不稳定

(5)有些小的公司的服务器,查找不到资源的时候,直接进行了转发。

IOS自定义DNS解析:

参考代码:

    NSURL *url = [NSURL URLWithString:@"http://YY.xx.tt.PP/p1/20141122/1036263553C.jpg_220x123.jpg"];

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

    [request setValue:@"i2.hunantv.com" forHTTPHeaderField:@"Host"];

    [self.webView loadRequest:request];

比如我想访问湖南卫视的资源:


湖南卫视的DNS解析地址是171...

所以网址可以直接写成

http://171.112.96.24/p1/20141122/1036263553C.jpg_220x123.jpg

而XNS是自定义解析,实现

自定义IP(即XNS服务器指向的IP地址)

另外如何截取网络访问的二级域名,实现所有的请求都用xns解析呢?比如访问湖南卫视,一个URL请求出去,可能返回之后,还要再有几百个新的请求发起。

IOS中使用URLProtocol

- (void)startLoading {

    NSMutableURLRequest *mutablerequest = [[NSMutableURLRequestalloc]initWithURL:[NSURLURLWithString:@"http://xx.uu.ii.pp/p1/20141122/1036263553C.jpg_220x123.jpg"]];

    [mutablerequest setValue:@"i2.hunantv.com"forHTTPHeaderField:@"Host"];

    

    //NSMutableURLRequest *newRequest = [self.request mutableCopy];

   NSMutableURLRequest *newRequest = mutablerequest;

    [NSURLProtocolsetProperty:@YESforKey:@"MyURLProtocolHandledKey"inRequest:newRequest];

    

    self.connection = [NSURLConnectionconnectionWithRequest:newRequestdelegate:self];

}


0 0
原创粉丝点击