2015-07-30 21 views
15

Tôi muốn nhận tất cả các mạng WiFi khả dụng trong một khu vực và giá trị SSID của chúng. Nhưng vấn đề là làm thế nào để có được SSID của tất cả các mạng WiFi có sẵn ngay cả khi tôi không kết nối với một.Cách lấy tên mạng wifi có sẵn trong iOS bằng cách sử dụng nhanh

+0

@EnricoSusatyo tôi có cùng một vấn đề tôi không thể có được tất cả danh sách wifi có sẵn. –

+0

Không dễ dàng. Quét mạng wifi là một mối đe dọa bảo mật. – Sulthan

+3

Tôi tìm thấy các câu hỏi tương tự được hỏi trên SO với tìm kiếm nhanh trên google, câu trả lời phổ biến là trong khi bạn có thể không phải là do quy tắc của Apple – RubberDucky4444

Trả lời

1

đây lớp học của tôi mà in tên mạng WIFI

import UIKit 
import Foundation 
import SystemConfiguration.CaptiveNetwork 

class FirstView: UIViewController 
{ 
    @IBOutlet weak var label: UILabel! 

    override func viewDidLoad() 
    { 
     super.viewDidLoad() 
     let ssid = self.getWiFiName() 
     print("SSID: \(ssid)") 
    } 

    func getWiFiName() -> String? { 
     var ssid: String? 
     if let interfaces = CNCopySupportedInterfaces() as NSArray? { 
      for interface in interfaces { 
       if let interfaceInfo = CNCopyCurrentNetworkInfo(interface as! CFString) as NSDictionary? { 
        ssid = interfaceInfo[kCNNetworkInfoKeySSID as String] as? String 
        break 
       } 
      } 
     } 
     return ssid 
    } 
} 
+2

Điều này dường như chỉ hiển thị SSID giao diện được kết nối. – picciano

+0

'var ssid =" "; (CNCopySupportedInterfaces() là? [CFString]) ?. forEach ({ ssid = (CNCopyCurrentNetworkInfo ($ 0) là? [String: Any])? [KCNNetworkInfoKeySSID as String] là? String ?? ""}) ' –

6

thứ nhất;

nhập hệ thốngConfiguration.CaptiveNetwork

Sau đó;

func getInterfaces() -> Bool { 
    guard let unwrappedCFArrayInterfaces = CNCopySupportedInterfaces() else { 
     print("this must be a simulator, no interfaces found") 
     return false 
    } 
    guard let swiftInterfaces = (unwrappedCFArrayInterfaces as NSArray) as? [String] else { 
     print("System error: did not come back as array of Strings") 
     return false 
    } 
    for interface in swiftInterfaces { 
     print("Looking up SSID info for \(interface)") // en0 
     guard let unwrappedCFDictionaryForInterface = CNCopyCurrentNetworkInfo(interface) else { 
      print("System error: \(interface) has no information") 
      return false 
     } 
     guard let SSIDDict = (unwrappedCFDictionaryForInterface as NSDictionary) as? [String: AnyObject] else { 
      print("System error: interface information is not a string-keyed dictionary") 
      return false 
     } 
     for d in SSIDDict.keys { 
      print("\(d): \(SSIDDict[d]!)") 
     } 
    } 
    return true 
} 
+1

Điều này dường như chỉ trả lại wifi hiện đang kết nối ít nhất trên iOS 11.2.2 trên iPhone 7 – DCIndieDev

Các vấn đề liên quan