有没有一种在iOS应用中覆盖DNS的好方法?

时间:2012-09-27 21:25:13

标签: ios xcode dns ip

基本上,我想为URL制作虚假的DNS条目,并强制该URL解析为特定的IP。有没有办法在iOS中做到这一点,不会被拒绝的应用程序?我似乎无法找到这样做的方法(仍在方方面面)。任何人都可以指出我正确的方向(类参考,第三方框架等)?如果没有,是否有一条规则/政策/其他我忽略的东西让它变得不可能?

2 个答案:

答案 0 :(得分:3)

您无法在iOS应用级别正式执行此操作,因为DNS是由操作系统设置的,您无法修改由于iOS Sandbox而导致的条目。这意味着如果您要创建一个您将提交到Apple App Store的应用程序,则无法进行此操作。你可以在你自己的应用程序中构建一些东西,如果你有一些浏览器,你拦截URL并重定向它,当然这将是你的应用程序本地,而不是当用户使用Mobile Safari或Chrome等时。

如果您要为越狱设备创建应用,则可以修改/etc/hosts文件并在其中添加条目

答案 1 :(得分:0)

一个简单的解决方案:
比方说,你想得到http://httpbin.org/get
并且你不想使用domian,但使用ip地址54.175.219.8
您只需提出请求,将http://54.175.219.8/get设置为path,然后添加新的http标头:{“host”:“httpbin.org”}。

一般解决方案:
实现您自己的NSURLProtocol,如https://github.com/mattt/NSEtcHosts