Frage

Ich verwende die normalen Erreichbarkeitstools, um zu überprüfen, ob eine Internetverbindung verfügbar ist. Es funktioniert in den meisten Fällen, aber wenn ich das WAN-Kabel zum WLAN-Router stecke, heißt es aus irgendeinem Grund, dass es den Host von WLAN finden kann. Wenn ich die Webadresse in etwas ändere, das nicht existiert, heißt es "Das Internet ist unten", wie es sollte. Wo ist mein Problem?

Beispiel:

I. Ich habe das "Internetkabel" ausgesteckt, aber ein Telefon, das von WLAN an Router angeschlossen ist. Ich renne mit dieser Zeile, das erste Mal für diese Domain:

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

Ergebnis = kein Host gefunden (richtig)

II. Ich deaktiviere WLAN im Telefon. Ergebnis = Host mit WWAN gefunden (richtig)

III. Ich aktiviere WiFi im Telefon. Ergebnis = Host mit WLAN gefunden. (Nicht korrekt, da Router nicht online ist)

War es hilfreich?

Lösung

Für die Internetprüfung sende ich eine HTTP -Anfrage an eine Website (höchstwahrscheinlich Google.com), wenn sie nicht true zurückgibt, bedeutet dies kein Internet. Dieser Fall funktioniert auch, auch die Verbindung ist so langsam. Hier ist die Methode.

- (BOOL) connectedToInternet
{
    NSString *URLString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com"]];
return ( URLString != NULL ) ? YES : NO;
}

Andere Tipps

Möglicherweise möchten Sie dies überprüfen Faden. Es ist bekannt, dass der Erreichbarkeitscode nur die Konnektivität mit Ihrem Router testet. Es sollte jetzt eine Benachrichtigung über die Konnektivität vorhanden sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top