检查iPhone中的互联网连接 - 而不仅仅是路由器

时间:2011-06-10 12:52:51

标签: objective-c connection reachability

我使用普通的可达性工具来检查是否有可用的互联网连接。它适用于大多数情况,但如果我将WAN电缆拔出到wifi路由器,由于某种原因,它仍然说它可以通过wifi找到主机。如果我将网址更改为不存在的内容,则会说“互联网已关闭”,就像它应该的那样。我的问题在哪里?

示例:

予。我已经拔掉了“网线”,但手机通过wifi连接到路由器。我使用这一行运行,这是该域名的第一次:

hostReachable = [[Reachability reachabilityWithHostName: @"www.google.com"] retain];

结果=找不到主机(正确)

II。我在手机中禁用wifi。结果=使用WWAN找到主机(正确)

III。我在手机中启用了wifi。结果=使用WIFI找到主机。 (不正确,因为路由器不在线)

2 个答案:

答案 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代码仅测试与路由器的连接。现在应该有连接通知。