我现在有一个非常奇怪的案例,我正在开发一个应用程序。我正在测试它的 Wi-Fi 网络没有启用互联网,但它仍然显示我在使用Reachability
. 如何检查这种情况,以便告诉用户没有可用的连接?
问问题
168 次
2 回答
1
You need to use reachabilityWithHostName
(I presume you are using reachabilityForInternetConnection
or reachabilityForLocalWiFi
) to check if you can reach a particular external hostname.
For example, this code will return YES if there is no internet connection:
Reachability *reachability = [Reachability reachabilityWithHostName:@"www.apple.com"];
if ([reachability currentReachabilityStatus] == NotReachable)
return YES;
于 2012-11-03T17:22:08.773 回答
0
定义“连接”,有几层连接是通过 Wi-Fi 获得正常互联网服务的关键:
- 第 1 层(物理链路)是否在范围内?
- 第 2 层 (MAC) 大部分见上文,但 MAC 地址冲突可能会导致问题
- 第 3 层 (IP) 我们是否从 DHCP/BOOTP 或静态配置中获得了 IP 地址?
- 第 3 层 (GW) 我们可以到达网关吗?
- 第 3 层 (ROUTE) 我们可以到达下一跳路由器吗?
- 第 7 层 (DNS) 我们可以访问 DNS 服务器吗?我们是被欺骗还是被迷住了?
一旦所有这些工作正常,你应该有“工作 Wi-Fi”
于 2013-12-11T01:50:05.403 回答