iPhone上是否存在hosts文件?怎么改呢?

Hoa*_*ham 99 iphone dns hosts-file

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

现在我需要用我的iPhone测试它,问题是我的iPhone由于缺少配置dns而无法识别该服务器.

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

现在我如何让我的iPhone知道URL http://www.google.com:?

stu*_*nik 76

这里的另一个选择是让你的iPhone通过代理连接.以下是如何使用Fiddler进行操作的示例(非常简单):

http://conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html

在这种情况下,任何dns查找你的iPhone确实会使用Fiddler正在运行的机器的hosts文件.但请注意,您必须使用将通过DNS解析的名称.example.local例如,不起作用.example.xyzexample.dev意志.

  • 这是最简单的解决方案.我应该想到这个!! (3认同)
  • 使用OSX和Charles Web Proxy在iPhone上进行本地开发http://deployfx.com/2011/08/local-development-on-iphone-with-osx-and-charles-web-proxy/ (2认同)

And*_*ock 35

这并没有直接回答你的问题,但它确实解决了你的问题......

你有什么样的路由器?您的路由器固件可能允许您为本地网络设置DNS记录.这就是我使用Tomato固件做的事情


Tho*_*ini 32

没有编程相关,但无论如何我都会回答.它在/etc/hosts.

您可以使用简单的文本编辑器更改它nano.

(显然你需要一个越狱的iphone)

  • 我不理解downvotes.答案在技术上是正确的并且写得很好. (14认同)
  • 你不能在香草iphone上使用nano来直接进入/ etc/hosts.我假设是关于一个将被分发的应用程序,在这种情况下,你不能搞乱沙箱外的文件. (3认同)
  • 我会为编辑恢复一些业力; 如果由于*隐含*'用于分布式应用程序而使用了向下投票,那么当我能理解它们时,我认为那些贬低者应该留下评论来解释这一点. (2认同)
  • 我认为他只需要更改hosts文件,这样他就可以测试他的应用了.经过测试,它不需要更改主机文件.在这里推荐越狱完全可以接受! (2认同)

Sim*_*ast 13

我刚刚成功编辑了iPhone的'hosts'文件(在Jailbroken iOS 4.0上).

  • 通过Cydia将OpenSSH安装到iPhone上
  • 在我的计算机上使用像FileZilla这样的SFTP客户端,我连接到了我的iPhone
    • 地址:[使用您手机的IP地址或主机名,例如.simophone.local]
    • 用户名: root
    • 密码: alpine
  • 找到/etc/hosts档案
  • 做了一个备份我的电脑上(如果我想以后我恢复的变化)
  • 在一个体面的文本编辑器(如Notepad ++)中编辑了hosts文件.有关hosts文件的说明,请参见此处.
  • 上传更改,覆盖iPhone上的hosts文件

手机会缓存一些网页和DNS查询,因此重启或清除缓存可能有所帮助.希望能帮助别人.

西蒙.

  • 您还可以使用Cydia的iFile应用程序编辑设备上的hosts文件,而无需使用计算机.广告@米 (2认同)
  • ..并将默认密码从alpine更改为其他内容! (2认同)

oef*_*efe 6

它可能存在,但你不能在非越狱的iPhone上改变它.

假设您的开发网络服务器在Mac上,为什么不简单地使用其Bonjour名称(例如MyMac.local.)而不是myrealwebserverontheinternet.com


Jaa*_*nus 6

不要更改手机上的 DNS。相反,使用 wifi 连接到本地网络,一切就绪。

在我的办公室,我们有带有内部 DNS 的内部服务器,这些服务器不暴露在 Internet 上。我只是将 iPhone 连接到办公室 wifi,然后可以正常访问它们。

YMMV,但不是配置手机DNS,我觉得只是设置本地内部DNS和wifi是一个更干净,更简单的解决方案。


eks*_*pto 6

如果有其他人落入此页面,您也可以通过使用URL请求中的IP地址而不是域来解决此问题:

NSURL *myURL = [NSURL URLWithString:@"http://10.0.0.2/mypage.php"];
Run Code Online (Sandbox Code Playgroud)

然后手动指定主机:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:myURL];
[request setAllHTTPHeaderFields:[NSDictionary dictionaryWithObjectAndKeys:@"myserver",@"Host"]];
Run Code Online (Sandbox Code Playgroud)

就服务器而言,它的行为方式与您使用的方式完全相同http://myserver/mypage.php,只是iPhone不需要进行DNS查找.

100%公共API.

  • 但是,这仅适用于第一个请求,如果mypage.php向myserver发出任何其他请求,则应用程序将不会执行转换. (2认同)