如何在UIWebView
中禁用DNS过滤?我有一个网站,必须在特定的Wi-Fi上查看,并有DNS过滤,我想绕过。 Thanx,SebOH。
答案 0 :(得分:1)
这与UIWebView没有任何关系,但更多的是您的网络所具有的DNS过滤类型。可能有很多方法可以过滤DNS。
以下是一些可能的方法:
<强> 1。 “愚蠢的过滤”
在这种情况下,iOS会自动请求从网关使用DNS服务器。然后,网关可以提供过滤请求的DNS服务器。这非常容易绕过。只需转到WiFi设置并手动设置DNS服务器,手机将不再向网关询问DNS服务器,而是使用您指定的服务器。 (谷歌是8.8.8.8)
<强> 2。 “智能过滤”
这是你必须有点创意的地方。在智能过滤中,网关实际上会在发送DNS数据包时对其进行分析,如果它检测到阻止网站的请求,则不会让数据包通过。这可能很难绕过。您必须以某种方式使用不同的协议(如HTTP或某些自定义设计)获取使用域名注册的IP地址。您可能需要在此方法中使用自己的服务器。
假设用户试图访问 twitter.com 。在您的委托方法中(或从您加载页面的任何位置),您可以使用未经过滤的DNS向服务器发送HTTP POST请求(假设网关未过滤您的服务器的域),这将是回复 twitter.com 的相应IP地址。然后,您可以将UIWebView直接导航到IP地址。像这样:
NSString *api_response = [YourAPI requestIPFromServer:@"http://yourserver.com/api" withDomain:@"twitter.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:api_response]];
[myWebView loadRequest:request];
希望这有帮助,但这是一个模糊的问题。