0

我正在开发一个适用于 iOS 的 Web 应用程序,该应用程序将从根本没有 Internet 连接的网络中的本地 Web 服务器访问。

我的问题是,每次 iOS 设备被锁定时,它都会断开与 WiFi 网络的连接,所以当设备再次解锁时,它必须重新连接。重新连接过程的一部分是确定是否有 Internet 连接(没有)。在该过程未完成之前,iOS 不允许任何 DNS 解析(所以如果我写http://10.0.0.1它会去那里,但如果我请求http://something.local.com则不会)。

由于我们控制了该网络,我们想知道 iOS 如何验证 Internet 连接,以便我们可以伪造它所期望的响应。

4

2 回答 2

1

我不知道是否可以在没有互联网连接的情况下在 iOS 上解析 DNS,但如果是这种情况,那将是一个更好的解决方案,因为您不需要弄乱路由器设置。仅当仅使用代码确实不可能时才使用我的解决方案。
我建议您遵循本指南:http ://blog.jerodsanto.net/2009/06/sniff-your-iphones-network-traffic检查您的 iPhone 执行哪些操作来检测互联网连接。
使用此信息,您可以将路由器上的 is-there-internet-requests 转发到伪造 there-is-internet-responses 的本地服务器。
这假设 Apple 确实使用外部服务器来检测这一点,我不确定。但试一试不会有什么坏处!

于 2012-05-01T19:56:34.180 回答
0

你看过可达性类吗?您不必使用该reachabilityForInternetConnection方法,它会检查默认路由是否可用。您可以使用该reachabilityWithAddress:方法并检查您的服务器是否可以访问。

于 2012-05-01T20:50:43.150 回答