主机文件是否存在于iPhone上? 如何改变它?
我正在开发一个查询到服务器的应用程序。 在我的Mac中,我使用hosts文件将dns更改为指向本地局域网内的本地服务器。
现在我需要用我的iPhone来testing它,问题是由于缺lessdnsconfiguration,我的iPhone无法识别该服务器。
在我的Mac或Windows上,我只需在hosts文件中添加: 192.168.0.20 http://www.google.com
。
现在我该如何让我的iPhone知道url: http://www.google.com
: http://www.google.com
?
这不会直接回答你的问题,但它确实解决了你的问题…
你有什么样的路由器? 您的路由器固件可能允许您为本地networking设置DNSlogging。 这是我用番茄固件做的
这里的另一个select是让你的iPhone通过代理连接。 下面是一个如何使用Fiddler做的例子(这很简单):
http://conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html
在这种情况下,您的iPhone所做的任何dns查找都将使用Fiddler正在运行的计算机的主机文件。 但请注意 ,您必须使用通过DNSparsing的名称。 example.local
,例如,将无法正常工作。 example.xyz
或example.dev
会。
不是编程相关,但我会回答。 它在/etc/hosts
。
您可以使用简单的文本编辑器(如nano
进行更改。
(显然,你需要一个越狱的iPhone为此)
我刚刚编辑我的iPhone'主机'文件(在Jailbroken iOS 4.0)。
- 通过Cydia将OpenSSH安装到iPhone上
- 使用我的电脑上的FileZilla等SFTP客户端 ,我连接到我的iPhone
- 地址: [使用您的手机的IP地址或主机名,例如。
simophone.local
] - 用户名:
root
- 密码:
alpine
- 地址: [使用您的手机的IP地址或主机名,例如。
- 位于
/etc/hosts
文件中 - 在我的电脑上做了一个备份 (以防我稍后恢复我的更改)
- 在一个体面的文本编辑器(如Notepad ++ )中编辑主机文件 。 请参阅这里查看hosts文件的解释。
- 上传更改 ,覆盖iPhone上的主机文件
电话caching一些网页和DNS查询,所以重新启动或清除caching可能会有所帮助。 希望能帮助别人。
西蒙。
它可能存在,但是你不能在非越狱的iPhone上改变它。
假设你的开发networking服务器在Mac上,为什么不直接使用它的Bonjour名字(例如MyMac.local.
)而不是myrealwebserverontheinternet.com
?
如果有其他人进入这个页面,你也可以通过在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。
不要更改电话上的DNS。 相反,连接到本地networking的无线networking,你都设置。
在我的办公室里,我们有内部的DNS服务器,这些服务器没有暴露在互联网上。 我只需连接iPhone到办公室的WiFi,然后可以访问他们罚款。
YMMV,而不是configuration手机的DNS,感觉只是设置本地内部的DNS和WiFi是一个更清洁和更容易的解决scheme。
不,iPhone应用程序只能改变自己的小沙箱内的东西。 (甚至在那里,有些事情是你不能随便改变的)
你最好的select是使用服务器的IP地址而不是主机名。 稍微困难一些,但是如果你只需要解决一个地址问题就不那么困难了, 那就是在你的Mac上放一个DNS服务器,并configuration你的iPhone来使用它。