我正在开发一个查询服务器的应用程序。在我的 Mac 中,我使用 hosts 文件将 dns 更改为指向局域网中的本地服务器。
现在我需要用我的 iPhone 测试它,问题是我的 iPhone 由于缺少 dns 配置而无法识别该服务器。
在我的 Mac 或 Windows 上,我只需将:添加192.168.0.20 http://www.google.com
到 hosts 文件中。
现在我如何让我的 iPhone 知道 URL http://www.google.com
:?
我正在开发一个查询服务器的应用程序。在我的 Mac 中,我使用 hosts 文件将 dns 更改为指向局域网中的本地服务器。
现在我需要用我的 iPhone 测试它,问题是我的 iPhone 由于缺少 dns 配置而无法识别该服务器。
在我的 Mac 或 Windows 上,我只需将:添加192.168.0.20 http://www.google.com
到 hosts 文件中。
现在我如何让我的 iPhone 知道 URL http://www.google.com
:?
这里的另一个选择是让你的 iPhone 通过代理连接。这是一个如何使用 Fiddler 进行操作的示例(非常简单):
http://conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html
在这种情况下,您的 iPhone 所做的任何 dns 查找都将使用 Fiddler 正在运行的机器的主机文件。但请注意,您必须使用将通过 DNS 解析的名称。example.local
,例如,将不起作用。example.xyz
或example.dev
将。
这并不能直接回答您的问题,但确实可以解决您的问题...
你的路由器是什么牌子的?您的路由器固件可能允许您为本地网络设置 DNS 记录。这就是我对番茄固件所做的事情
与编程无关,但无论如何我都会回答。它在/etc/hosts
。
您可以使用简单的文本编辑器(例如nano
.
(显然你需要一个越狱的 iPhone)
我刚刚成功编辑了我的 iPhone 的“主机”文件(在越狱 iOS 4.0 上)。
simophone.local
]root
alpine
/etc/hosts
文件手机确实缓存了一些网页和 DNS 查询,因此重新启动或清除缓存可能会有所帮助。希望对某人有所帮助。
西蒙。
它可能存在,但您无法在未越狱的 iPhone 上更改它。
假设您的开发网络服务器在 Mac 上,为什么不简单地使用它的 Bonjour 名称(例如MyMac.local.
)而不是myrealwebserverontheinternet.com
?
不要更改手机上的 DNS。相反,通过 wifi 连接到本地网络,一切就绪。
在我的办公室,我们的内部服务器具有内部 DNS,不会暴露在 Internet 上。我只需将 iPhone 连接到办公室 wifi,然后就可以正常访问它们。
YMMV,但不是配置手机 DNS,我觉得只设置本地内部 DNS 和 wifi 是一种更清洁、更简单的解决方案。
如果其他人落入此页面,您也可以通过在 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。
不,iPhone 应用程序只能在其自己的小沙箱中更改内容。(即使有些事情您也无法即时更改。)
您最好的选择可能是使用服务器 IP 地址而不是主机名。稍微难一点,但如果你只需要解析一个地址,那就没那么难了,那就是在你的 Mac 上放置一个 DNS 服务器并配置你的 iPhone 来使用它。