主机文件是否存在于iPhone上? 如何改变它?

我正在开发一个查询到服务器的应用程序。 在我的Mac中,我使用hosts文件将dns更改为指向本地局域网内的本地服务器。

现在我需要用我的iPhone来testing它,问题是由于缺lessdnsconfiguration,我的iPhone无法识别该服务器。

在我的Mac或Windows上,我只需在hosts文件中添加: 192.168.0.20 http://www.google.com

现在我该如何让我的iPhone知道url: http://www.google.comhttp://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.xyzexample.dev会。

不是编程相关,但我会回答。 它在/etc/hosts

您可以使用简单的文本编辑器(如nano进行更改。

(显然,你需要一个越狱的iPhone为此)

我刚刚编辑我的iPhone'主机'文件(在Jailbroken iOS 4.0)。

  • 通过Cydia将OpenSSH安装到iPhone上
  • 使用我的电脑上的FileZilla等SFTP客户端 ,我连接到我的iPhone
    • 地址: [使用您的手机的IP地址或主机名,例如。 simophone.local ]
    • 用户名: root
    • 密码: alpine
  • 位于/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来使用它。

    Interesting Posts