¿Cómo encontrar dispositivos Wifi cercanos usando Swift? ¿Cómo puedo encontrar información sobre dispositivos conectados a la red wifi usando iPhone? ¿Hay algún código rápido que pueda proporcionar información sobre dispositivos wifi? Los dispositivos pueden ser como televisión o cámara o algo más.
Conozco esta respuesta Cómo obtener todas las listas de nombres de redes wifi disponibles en iOS
Pero esta respuesta sobre encontrar redes que estén conectadas. Necesito encontrar cerca de todos los dispositivos.
Encontré este enlace con 1115 líneas de código. https://gist.github.com/macropok/3df8ba519163d6e66d1de3b9819d49bd
con codigo
import Foundation import UIKit import Darwin import SystemConfiguration.CaptiveNetwork import CoreLocation class CirrentService : NSObject { private func getDevicesInRange(completion: @escaping FindDeviceCompletionHandler) { let appID:String = CirrentService.sharedService.setAppIdentifier()! APIService.sharedService.getDevicesInRange(appID: appID, completion: { data, response, error in guard let _ = data, error == nil else { LogService.sharedService.debug(data: "Get Devices In Range Failed - NO_RESPONSE") completion(FIND_DEVICE_RESULT.FAILED_NO_RESPONSE, nil) return } if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 { LogService.sharedService.debug(data: "Get Devices In Range Failed - INVALID_STATUS:\(httpStatus.statusCode)") completion(FIND_DEVICE_RESULT.FAILED_INVALID_STATUS, nil) return } let str = String(data: data!, encoding: .utf8) print(str!) let jsonData:JSON = JSON(data: data!) let jsonArray = jsonData["devices"] var deviceArray:[Device] = [Device]() for item in jsonArray { let device = self.getDeviceFromJson(data: item.1) deviceArray.append(device) } if deviceArray.count == 0 { LogService.sharedService.debug(data: "Get Devices In Range Failed - NO_DEVICES") completion(FIND_DEVICE_RESULT.FAILED_NO_DEVICE, nil) } else { LogService.sharedService.debug(data: "Get Devices In Range Success") completion(FIND_DEVICE_RESULT.SUCCESS, deviceArray) } }) } private func findNearByDevices(completion:@escaping FindDeviceCompletionHandler) { self.findDeviceTimer = Timer.scheduledTimer(withTimeInterval: Constants.FIND_DEVICE_TIME_INTERVAL, repeats: true, block: { t in self.getDevicesInRange(completion: { result, devices in if result != FIND_DEVICE_RESULT.SUCCESS { if self.maxRetryCount == 0 { self.maxRetryCount = 6 self.findDeviceTimer?.invalidate() self.findDeviceTimer = nil completion(result, nil) return } else { self.maxRetryCount -= 1 LogService.sharedService.debug(data: "Left Find Devices Retry Count - \(self.maxRetryCount)") return } } self.findDeviceTimer?.invalidate() self.findDeviceTimer = nil self.model?.setDevices(devices: devices!) completion(FIND_DEVICE_RESULT.SUCCESS, devices) }) }) }