2010-04-14 18 views
6

In caso affermativo, possiamo ottenere ulteriori informazioni sulla configurazione di rete?Sull'iPhone, è possibile scoprire a quale rete WIFI siamo connessi?

Un modo utile per farlo potrebbe essere ottenere il SSID della rete corrente. C'è un'API per farlo?

Aggiornamento: Ho trovato una domanda simile qui:

Can the iPhone SDK obtain the Wi-Fi SSID currently connected to?

+0

Eventuali duplicati: http://stackoverflow.com/questions/1625158/iphone-sdk-detect-wifi-and-carrier-network –

+0

No, non è un duplicato di quella . Questo interrogante vuole sapere * quale * rete WiFi a cui è connesso, non * se * è connesso a uno, o se è connesso solo tramite cellulare (o non lo è affatto). –

+0

Fino a poche settimane fa c'era un'applicazione chiamata WifiTrak (http://www.bitrino.com/wifitrak/support.html) sull'appstore che mostrava un elenco di tutti gli hotspot Wi-Fi disponibili nel raggio. È stato comunque estratto dall'appstore, quindi, anche se sembra che ciò sia possibile, potrebbe non essere accettabile da Apple per qualsiasi motivo. –

risposta

1

(risposta separata per conservare la storia, ecc)

Sembra che potrebbe non essere in grado di determinare l'SSID della WLAN a cui si è connessi, almeno in un app che andrà in App Negozio. These people utilizza un'API privata - Preferenze.framework - per ottenere i dettagli della WLAN (ad esempio "è nascosta?" "Qual è il nome?" Ecc.).

0

hai guardato l'applicazione Reachability campione?

Modifica: l'app Raggiungibilità dimostra l'utilizzo del framework SystemConfiguration per mostrare se il telefono è connesso a Internet e, in tal caso, come.

Consente inoltre di distinguere tra una connessione WiFi locale e non (+ [Reachability reachabilityForLocalWiFi]).

Per quanto riguarda la carne della tua domanda, dovrai consultare la tabella ARP del telefono. This answer mostra come fare proprio questo.

+0

Forse potresti chiarire la tua risposta. Stai dicendo "sì, puoi, ecco un link ad un codice di esempio che lo fa" oppure stai dicendo "no, non puoi, ma ecco un'idea delle altre cose che puoi fare". O stai dicendo "Non lo so neanche io, ma guarda qui", che sarebbe davvero meglio come commento, in quanto non risponde alla domanda. –

+0

L'esempio di raggiungibilità mostra solo se siamo connessi a una rete. Non mostra come possiamo ottenere l'identificazione della rete attuale. – Plumenator

+0

Cosa intendi per identificazione di una rete? Intendi l'SSID di una WLAN? –

1

non posso commentare, ma questo potrebbe essere un duplicato:

Accessing iPhone WiFi Information via SDK

risposta sembra essere no. Ho fatto le mie ricerche su questo e non sono riuscito a trovare un modo supportato per ottenere il SSID.

2

Prova seguente metodo:

#import <SystemConfiguration/CaptiveNetwork.h> 

NSString *wifiName = @"Not Found"; 
CFArrayRef myArray = CNCopySupportedInterfaces(); 

if (myArray != nil) { 

    CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0)); 

    if (myDict != nil) { 
     NSDictionary *dict = (NSDictionary*)CFBridgingRelease(myDict); 

     wifiName = [dict valueForKey:@"SSID"]; 

    } 
} 

NSLog(@"wifiName:%@", wifiName);