iOS端监控SDK探索与实践-运营商广告劫持剔除

高佳杰
1.我们在加载网页时经常能看到运营商的DNS的广告劫持(或者是http的广告劫持),比如移动的小球,联通的流量充值等,那么我们怎么去剔除这些广告呢?
  • 首先我们得了解下DNS劫持是怎么回事情

    • DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能反应或访问的是假网址。
  • 怎么过滤掉DNS劫持呢?

    • 监听每次请求,将请求域名通过DNS解析获得ip地址并通过iP白名单过滤运营商的ip从而过滤掉广告信息。
2.实现步骤
  • 自定义一个DWDURLProtocol继承NSURLProtocol
  • 重写startLoading方法在其中拦截每次请求,通过DNS解析获取ip地址并通过白名单的配置过滤掉运营商的请求。
3.完整代码

DWDURLProtocol