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

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

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

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

有帮助吗?

解决方案

这并不直接回答你的问题,但它确实解决您的问题...

什么使路由器的,你呢?您的路由器固件可以允许您为您的本地网络设置DNS记录。这是我做的番茄固件

其他提示

另一个选择是让你的iPhone通过代理服务器连接。这里的(这是很容易的)的如何使用Fiddler做到这一点的示例:

http://conceptdev.blogspot.com/ 2009/01 /监视iphone的web流量-with.html

在这种情况下,任何DNS查询您的iPhone并会使用Fiddler正在运行的机器的主机文件。 注意下,虽然,你必须使用将通过DNS解析的名称。 example.local,例如,将无法正常工作。 example.xyzexample.dev意愿。

而不是编程相关的,但无论如何,我会回答。它在/etc/hosts

可以用一个简单的文本编辑器改变它如nano

(很明显,你将需要为这个越狱iphone)

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

  • 已安装 开放SSH 通过 Cydia 到 iPhone
  • 用一个 SFTP客户端 喜欢 文件齐拉 在我的电脑上,我连接到了我的 iPhone
    • 地址: [使用您手机的 IP 地址或主机名,例如。 simophone.local]
    • 用户名: root
    • 密码: alpine
  • 位于 /etc/hosts 文件
  • 做了一个 备份 在我的计算机上(以防我稍后想恢复更改)
  • 编辑了hosts文件 在一个像样的文本编辑器中(例如 记事本++)。看 这里 有关主机文件的说明。
  • 已上传更改, ,覆盖iPhone上的hosts文件

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

西蒙.

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

假设您的开发网络服务器位于 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。相反,带wifi连接到本地网络和你都设置。

在我的办公室,我们有与没有暴露于Internet的内部DNS内部服务器。我只是与iPhone连接到办公室的WiFi,然后可以访问它们的罚款。

因人而异,但代替配置手机DNS,感觉对我来说,只是建立本地内部DNS和WiFi是一个更清洁,更方便的解决方案。

没有,一个iPhone应用程序只能在其自己的小沙箱中更改的东西。 (甚至还有有一些事情,你不能动态更改。)

您最好的选择可能是使用的服务器IP地址,而不是主机名。稍微硬一点,但不是的的硬盘,如果你只需要解决一个地址,将是把你的Mac上的DNS服务器和配置您的iPhone使用的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top