我正在开发一个适用于iOS的网络应用程序,该网络应用程序将从一个完全没有互联网连接的网络中的本地网络服务器加入。
我的问题是,每次iOS设备被锁定时,它都会与WiFi网络断开连接,因此当设备再次解锁时,必须重新连接。重新连接过程的一部分是确定是否存在Internet连接(没有连接)。在该过程未完成之前,iOS不允许任何DNS解析(因此,如果我写http://10.0.0.1它将会去那里,但如果我请求http://something.local.com则不会。
由于我们控制着该网络,因此我们想知道iOS如何验证互联网连接,以便我们可以伪造其预期的响应。
答案 0 :(得分:1)
我不知道在iOS上没有互联网连接是否可以解析DNS,但如果是这种情况,这将是一种更好的解决方案,因为您不需要弄乱路由器设置。只有在没有代码的情况下才能使用我的解决方案
我建议您按照本指南操作:http://blog.jerodsanto.net/2009/06/sniff-your-iphones-network-traffic检查您的iPhone执行哪些操作来检测互联网连接
使用此信息,您可以将路由器上的is-there-internet-requests转发到本地服务器,该服务器会伪造那里的互联网响应。
这假设Apple确实使用外部服务器来检测这一点,我不确定。但尝试一下也不会有害!
答案 1 :(得分:0)
你看过Reachability Class了吗?您不必使用reachabilityForInternetConnection
方法,该方法检查默认路由是否可用。您可以使用reachabilityWithAddress:
方法并检查您的服务器是否可访问。