我正在开发一个查询服务器的应用程序。在我的Mac中,我使用hosts文件将dns更改为指向本地区域网络中的本地服务器。
现在我需要用我的iPhone进行测试,问题是由于dns缺少配置,我的iPhone无法识别该服务器。
在我的Mac或Windows上,我只需将192.168.0.20 http://www.google.com
添加到主机文件中。
现在我如何让我的iPhone知道网址:http://www.google.com
?
答案 0 :(得分:73)
此处的另一个选择是通过代理连接iPhone。这是一个如何用Fiddler做的例子(非常简单):
http://conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html
在这种情况下,任何dns查找你的iPhone都会使用Fiddler正在运行的机器的hosts文件。但是,注意,您必须使用将通过DNS解析的名称。例如,example.local
将不起作用。 example.xyz
或example.dev
会。
答案 1 :(得分:34)
这并没有直接回答你的问题,但它确实解决了你的问题......
你有什么样的路由器?您的路由器固件可能允许您为本地网络设置DNS记录。这就是我对Tomato firmware
的处理方式答案 2 :(得分:31)
没有编程相关,但无论如何我都会回答。它位于/etc/hosts
。
您可以使用简单的文本编辑器(例如nano
。
(显然你需要一个越狱的iphone)
答案 3 :(得分:13)
我刚刚成功编辑了iPhone的'hosts'文件(在Jailbroken iOS 4.0上)。
simophone.local
] root
alpine
/etc/hosts
文件手机会缓存一些网页和DNS查询,因此重启或清除缓存可能有所帮助。希望有所帮助。
<强>西蒙。强>
答案 4 :(得分:6)
它可能存在,但您无法在非越狱的iPhone上更改它。
假设您的开发网络服务器位于Mac上,为什么不简单地使用其Bonjour名称(例如MyMac.local.
)而不是myrealwebserverontheinternet.com
?
答案 5 :(得分:5)
如果有其他人进入此页面,您也可以使用URL请求中的IP地址而不是域来解决此问题:
NSURL *myURL = [NSURL URLWithString:@"http://10.0.0.2/mypage.php"];
然后手动指定主机:
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:myURL];
[request setAllHTTPHeaderFields:[NSDictionary dictionaryWithObjectAndKeys:@"myserver",@"Host"]];
就服务器而言,它的行为方式与使用http://myserver/mypage.php
完全相同,只是iPhone不需要进行DNS查找。
100%公共API。
答案 6 :(得分:4)
请勿更改手机上的DNS。相反,将wifi连接到本地网络就可以了。
在我的办公室,我们有内部服务器,内部DNS没有暴露在互联网上。我只是将iPhone连接到办公室wifi,然后可以正常访问它们。
YMMV,但不是配置手机DNS,我觉得只设置本地内部DNS和wifi是一种更简洁的解决方案。
答案 7 :(得分:1)
不,iPhone应用程序只能在自己的小沙箱中更改内容。 (甚至有些东西你无法动态改变。)
您最好的选择可能是使用服务器IP地址而不是主机名。如果你只需要解析一个地址,那就更难了,但那很难,就是在你的Mac上安装DNS服务器并配置你的iPhone使用它。