verifier connexion Wifi

Bonjour,


je voudrai pouvoir vérifier la connexion Wifi à  mon réseau.


Pouvez-vous m'orienter dans mer recherches?


Merci


Réponses

  • Merci pour ta réponse


    Après quelques heures de recherches, il me semble que le code le plus simple est celui-ci (qui semble fonctionner si j'en crois le rédacteur)


    http://stackoverflow.com/questions/38779648/reachability-bug-in-xcode-8-e-swift-3


     


    Mais je pense que je n'intègre pas correctement  les fichiers "Reachability h and m classes"

  • GoodGoodGoodGood Membre
    janvier 2017 modifié #4

    Tu peu utiliser cette class qui pour moi march a merveille. 



    import Foundation
    import SystemConfiguration


    let ReachabilityStatusChangedNotification = "ReachabilityStatusChangedNotification"

    enum ReachabilityType: CustomStringConvertible {
    case wwan
    case wiFi

    var description: String {
    switch self {
    case .wwan: return "WWAN"
    case .wiFi: return "WiFi"
    }
    }
    }

    enum ReachabilityStatus: CustomStringConvertible {
    case offline
    case online(ReachabilityType)
    case unknown

    var description: String {
    switch self {
    case .offline: return "Offline"
    case .online(let type): return "Online (\(type))"
    case .unknown: return "Unknown"
    }
    }
    }

    public class Reach {

    func connectionStatus() -> ReachabilityStatus {
    var zeroAddress = sockaddr_in()
    zeroAddress.sin_len = UInt8(MemoryLayout<sockaddr_in>.size)
    zeroAddress.sin_family = sa_family_t(AF_INET)

    guard let defaultRouteReachability = withUnsafePointer(to: &zeroAddress, {
    $0.withMemoryRebound(to: sockaddr.self, capacity: 1) {
    SCNetworkReachabilityCreateWithAddress(nil, $0)
    }
    }) else {
    return .unknown
    }

    var flags : SCNetworkReachabilityFlags = []
    if !SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags) {
    return .unknown
    }

    return ReachabilityStatus(reachabilityFlags: flags)
    }


    func monitorReachabilityChanges() {
    let host = "google.com"
    var context = SCNetworkReachabilityContext(version: 0, info: nil, retain: nil, release: nil, copyDescription: nil)
    let reachability = SCNetworkReachabilityCreateWithName(nil, host)!

    SCNetworkReachabilitySetCallback(reachability, { (_, flags, _) in
    let status = ReachabilityStatus(reachabilityFlags: flags)

    NotificationCenter.default.post(name: Notification.Name(rawValue: ReachabilityStatusChangedNotification),
    object: nil,
    userInfo: ["Status": status.description])

    }, &context)

    SCNetworkReachabilityScheduleWithRunLoop(reachability, CFRunLoopGetMain(), RunLoopMode.commonModes as CFString)
    }

    }

    extension ReachabilityStatus {
    init(reachabilityFlags flags: SCNetworkReachabilityFlags) {
    let connectionRequired = flags.contains(.connectionRequired)
    let isReachable = flags.contains(.reachable)
    let isWWAN = flags.contains(.isWWAN)

    if !connectionRequired && isReachable {
    if isWWAN {
    self = .online(.wwan)
    } else {
    self = .online(.wiFi)
    }
    } else {
    self = .offline
    }
    }
    }


    Et tu l'utilise comme ceci  : 



    let check = Reach().connectionStatus()
    switch check {
    case .online(.wifi):
    //ton code
    case .online(.wwan):
    // ton code
    case .offline:
    // ton code
    case .unknown:
    //ton code
    default:
    //ton code
    }



  • Merci pour ta réponse et le code


    Ca fonctionne pour moi


    Juste à  corriger  "wiFi"   F majuscule dans le switch


    Jean-Luc


  • Je me permets encore une petite question,


    puis-je vérifier le nom de mon réseau et dans quelles propriétés ?

Connectez-vous ou Inscrivez-vous pour répondre.