2010-04-14 20 views
6

Si oui, pouvons-nous également obtenir des informations supplémentaires sur la configuration du réseau?Sur l'iPhone, est-il possible de savoir quel réseau WIFI nous sommes connectés?

Un moyen utile pour ce faire pourrait être d'obtenir le SSID du réseau actuel. Y a-t-il une API pour le faire?

Mise à jour: J'ai trouvé une question similaire ici:

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

+0

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

+0

Non, pas un doublon de cette . Ce questionneur veut savoir * quel * réseau WiFi il est connecté, pas * s'il * est connecté à un, ou s'il est connecté via mobile uniquement (ou pas du tout). –

+0

Jusqu'à il y a quelques semaines il y avait une application appelée WifiTrak (http://www.bitrino.com/wifitrak/support.html) sur l'appstore qui affichait une liste de tous les hotspots wi-fi disponibles à portée. Il a cependant été retiré de l'appstore, donc même si cela semblait possible, Apple pourrait ne pas l'accepter pour quelque raison que ce soit. –

Répondre

1

(réponse séparée pour préserver etc. histoire)

Il semble que vous pourriez ne pas être en mesure de déterminer le SSID du réseau local sans fil auquel vous êtes connecté, au moins dans une application qui va entrer dans l'App Le magasin. utiliser une API privée - Preferences.framework - pour obtenir les détails du WLAN (comme "est-il caché?" "Quel est le nom?", Etc.).

0

Avez-vous regardé l'exemple d'application Reachability?

Éditer: L'application Reachability démontre l'utilisation du framework SystemConfiguration pour montrer si votre téléphone est connecté à Internet et, si oui, comment.

Il permet en outre de faire la distinction entre une connexion WiFi locale et non (+ [Reachability reachabilityForLocalWiFi]). En ce qui concerne la viande de votre question, vous devrez consulter la table ARP du téléphone. This answer vous montre comment faire exactement cela.

+0

Peut-être pourriez-vous clarifier votre réponse. Êtes-vous en train de dire «oui, vous pouvez, voici un lien vers un exemple de code qui le fait» ou dites-vous «non, vous ne pouvez pas, mais voici une idée des autres choses que vous pouvez faire. Ou dites-vous "je ne sais pas non plus, mais regardez par ici" ce qui serait vraiment mieux comme un commentaire, car il ne répond pas à la question. –

+0

L'échantillon d'accessibilité montre seulement la détection de SI nous sommes connectés à un réseau. Cela ne montre pas comment nous pouvons obtenir l'identification du réseau actuel. – Plumenator

+0

Que voulez-vous dire par l'identification d'un réseau? Voulez-vous dire le SSID d'un WLAN? –

1

ne peux pas commenter, mais cela pourrait être un doublon:

Accessing iPhone WiFi Information via SDK

réponse semble être non. J'ai fait mes propres recherches à ce sujet et j'ai été incapable de trouver un moyen d'obtenir le SSID.

2

Essayez la méthode suivante:

#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);