wps una segura pulsador por pero para mac inalambrica está eliminar dónde detecta cómo conectar conecta botón activar ios iphone ssid bssid

ios - segura - iPhone obtener una lista de todos los SSID sin biblioteca privada



pulsador wps para iphone (6)

¿Es posible obtener una lista de todos los SSID disponibles en el iPhone sin utilizar una biblioteca privada?

Leí el iPhone obtener SSID sin una biblioteca privada, que trata de obtener detalles sobre la red actual .

Esta respuesta menciona:

Si desbloquea su dispositivo, puede usar el marco privado Apple80211 para buscar las redes de Wi-Fi disponibles y su potencia de señal. Pero eso también significa que tu aplicación será rechazada.

Apple tiene la API de CaptiveNetwork pero no parece haber una solución para obtener una lista de todas las redes disponibles. Parece que solo es posible hacerlo utilizando Apple80211 o conectándolos a todos.

¿Me estoy perdiendo algo, o no hay solución?


Algunas API nuevas se han lanzado como parte de la Extensión de red en iOS 9 y iOS 11. Aunque ninguna de ellas le permite buscar redes mientras su aplicación se está ejecutando, ambas le permiten realizar tareas relacionadas. Por ejemplo, puede buscar redes mientras la página de configuración de Wi-Fi se está ejecutando usando Hotspot Helper, y puede hacer que sea más fácil para un usuario unirse a una red usando cualquiera de estos.

Aquí hay una comparación de los dos marcos.

Hotspot Helper

  • NEHotspotHelper (introducido en iOS 9, WWDC 2015 ).
  • Requiere permiso especial de Apple.
  • Requiere el derecho com.apple.developer.networking.HotspotHelper .
  • Para obtener instrucciones paso a paso para que esto funcione, consulte esta respuesta .
  • Le permite participar en el descubrimiento / autenticación a una red Wi-Fi a través de la pantalla de Wi-Fi en la aplicación Configuración. Se registra para recibir una notificación cuando se escanean las redes (por ejemplo, cuando el usuario inicia Wi-Fi en la aplicación Configuración), y puede completar previamente la contraseña y mostrar una anotación cerca del nombre de la red. El usuario aún debe tocar el nombre de la red para conectarse, pero no le pedirá una contraseña si la ha completado previamente.

Configuración de punto de acceso

  • NEHotspotConfigurationManager (introducido en iOS 11, WWDC 2017 ).
  • No requiere permiso especial de Apple.
  • Requiere el derecho com.apple.developer.networking.HotspotConfiguration .
  • Le permite iniciar una conexión a una red Wi-Fi. Le da una lista de SSID / contraseñas a las que debe conectarse mientras se ejecuta su aplicación. Se presentará un cuadro de diálogo que le pregunta al usuario si desea conectarse a la red.



Primero de todos importar por encima de dos archivos de encabezado del sistema

import SystemConfiguration/SystemConfiguration.h import SystemConfiguration/CaptiveNetwork.h

debajo de Función / Método Devolver SSIDName

-(NSString *)getNetworkId{ NSString *string = CFBridgingRelease(CNCopySupportedInterfaces()); NSArray *interfacesArray = CFBridgingRelease(CFBridgingRetain(string)); if(interfacesArray.count > 0){ NSString *networkName = [interfacesArray objectAtIndex:0]; CFStringRef yourFriendlyCFString = (__bridge CFStringRef)networkName; NSDictionary *unsafeInterfaceData = CFBridgingRelease(CNCopyCurrentNetworkInfo(yourFriendlyCFString)); NSString *ssidName = unsafeInterfaceData[@"SSID"]; return ssidName; } return @"No network Found"; }


Paso 1: agregar el marco SystemConfiguration.framework
Paso 2: importar siguiente archivo de encabezado

import SystemConfiguration import SystemConfiguration.CaptiveNetwork

Paso 3: Ahora usa el código:

func getUsedSSID()->String { let interfaces = CNCopySupportedInterfaces() if interfaces != nil { let interfacesArray = CFBridgingRetain(interfaces) as! NSArray if interfacesArray.count > 0 { let interfaceName = interfacesArray[0] as! String let unsafeInterfaceData = CNCopyCurrentNetworkInfo(interfaceName)! as Dictionary let SSIDName = unsafeInterfaceData["SSID"] as! String print(SSIDName)/* here print recentally used wifi name*/ return SSIDName }else{ return "0" } }else{ return "0" } }


Sin el uso de la biblioteca privada ( Apple80211 ), solo puede obtener el SSID de la red a la que está conectado actualmente su dispositivo.


#import SystemConfiguration# ##import SystemConfiguration.CaptiveNetwork## //create variable var SSIDNameArray = NSMutableArray() var nameArray : NSArray = []; // Here function to return all SSIDName func getUsedSSID()->NSArray{ let interfaces = CNCopySupportedInterfaces() if interfaces != nil { let interfacesArray = CFBridgingRetain(interfaces) as! NSArray if interfacesArray.count > 0 { for interfaceName in interfacesArray { let unsafeInterfaceData = CNCopyCurrentNetworkInfo(interfaceName as! CFString)! as NSDictionary let SSIDName = unsafeInterfaceData["SSID"] as! String self.SSIDNameArray .add(SSIDName) } nameArray = self.SSIDNameArray .copy() as! NSArray return nameArray; }else{ return nameArray; } }else{ return nameArray; } }