107

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

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

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

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

4

8 回答 8

84

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

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

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

于 2011-06-17T12:49:20.813 回答
38

这并不能直接回答您的问题,但确实可以解决您的问题...

你的路由器是什么牌子的?您的路由器固件可能允许您为本地网络设置 DNS 记录。这就是我对番茄固件所做的事情

于 2010-01-08T15:41:09.537 回答
31

与编程无关,但无论如何我都会回答。它在/etc/hosts

您可以使用简单的文本编辑器(例如nano.

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

于 2010-01-08T15:29:19.783 回答
14

我刚刚成功编辑了我的 iPhone 的“主机”文件(在越狱 iOS 4.0 上)。

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

手机确实缓存了一些网页和 DNS 查询,因此重新启动或清除缓存可能会有所帮助。希望对某人有所帮助。

西蒙。

于 2010-09-20T03:08:55.620 回答
7

它可能存在,但您无法在未越狱的 iPhone 上更改它。

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

于 2010-01-08T15:37:10.120 回答
6

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

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

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

于 2010-01-08T19:36:50.393 回答
6

如果其他人落入此页面,您也可以通过在 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。

于 2011-12-12T19:14:59.223 回答
1

不,iPhone 应用程序只能在其自己的小沙箱中更改内容。(即使有些事情您也无法即时更改。)

您最好的选择可能是使用服务器 IP 地址而不是主机名。稍微难一点,但如果你只需要解析一个地址,那就没那么难了,那就是在你的 Mac 上放置一个 DNS 服务器并配置你的 iPhone 来使用它。

于 2010-01-08T15:37:22.107 回答