Domanda

Io uso i normali strumenti di raggiungibilità per verificare se ci sia una connessione internet. Funziona in maggior parte dei casi, ma se si scollega il cavo WAN al wifi-router, per qualche motivo ancora dicono che può trovare l'host da wifi. Se cambio l'indirizzo web a qualcosa che non esiste, si dirà "Internet è giù", come dovrebbe. Dove è il mio problema?

Esempio:

I. Ho il "cavo di internet" unplugged, ma il telefono collegato tramite wifi al router. Corro con questa linea, la prima volta per questo dominio:

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

Risultato = Nessun host trovato (corretto)

II. Ho disattivare il WiFi nel telefono. Risultato = Host trovato con WWAN (corretta)

III. Permetto wifi nel telefono. Risultato = Host trovato con WIFI. (Non è corretto, dal momento che il router non è in linea)

È stato utile?

Soluzione

Per controllare internet mando una richiesta HTTP a un sito (molto probabilmente google.com) se non restituisce vero, vuol dire niente internet. Questo caso funziona anche la connessione è così lento. Qui è il metodo.

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

Altri suggerimenti

Si consiglia di controllare questo filo . Il codice di raggiungibilità è noto per verificare la connettività solo con il vostro router. Ci dovrebbe essere una notifica per la connettività ora.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top