我使用普通的可达性工具来检查是否有可用的互联网连接。它适用于大多数情况,但如果我将WAN电缆拔出到wifi路由器,由于某种原因,它仍然说它可以通过wifi找到主机。如果我将网址更改为不存在的内容,则会说“互联网已关闭”,就像它应该的那样。我的问题在哪里?
示例:
予。我已经拔掉了“网线”,但手机通过wifi连接到路由器。我使用这一行运行,这是该域名的第一次:
hostReachable = [[Reachability reachabilityWithHostName: @"www.google.com"] retain];
结果=找不到主机(正确)
II。我在手机中禁用wifi。结果=使用WWAN找到主机(正确)
III。我在手机中启用了wifi。结果=使用WIFI找到主机。 (不正确,因为路由器不在线)
答案 0 :(得分:0)
对于互联网检查,我发送一个http请求到一个网站(最可能是google.com),如果它没有返回true,则表示没有互联网。这种情况甚至连接速度都很慢。这是方法。
- (BOOL) connectedToInternet
{
NSString *URLString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com"]];
return ( URLString != NULL ) ? YES : NO;
}
答案 1 :(得分:0)
您可能需要查看此thread。众所周知,Reachability代码仅测试与路由器的连接。现在应该有连接通知。