0

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

例子:

一、我拔掉了“网线”,但手机通过wifi连接到路由器。我第一次使用这条线运行这​​个域:

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

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

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

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

4

2 回答 2

0

对于互联网检查,我向一个站点(很可能是 google.com)发送一个 http 请求,如果它没有返回 true,则意味着没有互联网。即使连接速度很慢,这种情况也有效。这是方法。

- (BOOL) connectedToInternet
{
    NSString *URLString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com"]];
return ( URLString != NULL ) ? YES : NO;
}
于 2011-06-10T13:01:17.587 回答
0

你可能想看看这个线程。已知可达性代码仅用于测试与您的路由器的连接性。现在应该有连接通知。

于 2011-06-10T13:01:23.970 回答