检查Wi-Fi是否可用,但iOS上没有互联网

时间:2012-11-03 16:54:42

标签: ios nsurlconnection reachability

我现在有一个非常奇怪的案例,我正在研究一个应用程序。我正在测试它的Wi-Fi网络没有启用互联网,但它仍然显示我在使用Reachability时有一个conexión。我如何检查这种情况,以便告诉用户没有可用的连接?

2 个答案:

答案 0 :(得分:1)

您需要使用reachabilityWithHostName(我认为您使用reachabilityForInternetConnectionreachabilityForLocalWiFi)来检查您是否可以访问特定的外部主机名。

例如,如果没有互联网连接,此代码将返回YES:

Reachability *reachability = [Reachability reachabilityWithHostName:@"www.apple.com"];
if ([reachability currentReachabilityStatus] == NotReachable)
     return YES;

答案 1 :(得分:0)

定义'连接',有几层连接是通过Wi-Fi获得互联网服务的关键:

  • 第1层(物理链路)是范围内的无线电?
  • 第2层(MAC)大部分见上文,但MAC地址冲突可能会导致问题
  • 第3层(IP)我们从DHCP / BOOTP或静态配置中获取IP地址吗?
  • 第3层(GW)我们可以到达网关吗?
  • 第3层(ROUTE)我们可以到达下一跳路由器吗?
  • 第7层(DNS)我们可以到达DNS服务器吗?我们被欺骗还是被迷住了?

一旦所有这些工作正常,您就应该“正在使用Wi-Fi”