iOS客户端Portal认证Swift版

来源:互联网 发布:js对象添加属性及方法 编辑:程序博客网 时间:2024/06/03 22:49

在客户端做Portal认证总结

判断是否连接WiFi,引入第三方框架Reachability

#import "Reachability.h"  func isConnectWIFI() -> Bool {    let reach = Reachability(hostName: "www.baidu.com")    if reach.currentReachabilityStatus() == ReachableViaWiFi {        return true    }    return false}

获取WiFi名称

import SystemConfiguration.CaptiveNetworkfunc getSSID() -> String? {    let interfaces = CNCopySupportedInterfaces()    guard interfaces != nil else { return nil }    let if0: UnsafePointer<Void>? = CFArrayGetValueAtIndex(interfaces, 0)    guard if0 != nil else { return nil }    let interfaceName: CFStringRef = unsafeBitCast(if0!, CFStringRef.self)    let dictionary = CNCopyCurrentNetworkInfo(interfaceName)    guard dictionary != nil else { return nil }    let nsDictionary = NSDictionary(dictionary: dictionary!)    return nsDictionary[kCNNetworkInfoKeySSID as String] as? String}

获取本机IP

func getIFAddresses() -> [String] {    var addresses = [String]()    // Get list of all interfaces on the local machine:    var ifaddr : UnsafeMutablePointer<ifaddrs> = nil    if getifaddrs(&ifaddr) == 0 {        // For each interface ...        for (var ptr = ifaddr; ptr != nil; ptr = ptr.memory.ifa_next) {            let flags = Int32(ptr.memory.ifa_flags)            var addr = ptr.memory.ifa_addr.memory            // Check for running IPv4, IPv6 interfaces. Skip the loopback interface.            if (flags & (IFF_UP|IFF_RUNNING|IFF_LOOPBACK)) == (IFF_UP|IFF_RUNNING) {                if addr.sa_family == UInt8(AF_INET) || addr.sa_family == UInt8(AF_INET6) {                    // Convert interface address to a human readable string:                    var hostname = [CChar](count: Int(NI_MAXHOST), repeatedValue: 0)                    if (getnameinfo(&addr, socklen_t(addr.sa_len), &hostname, socklen_t(hostname.count),                        nil, socklen_t(0), NI_NUMERICHOST) == 0) {                            if let address = String.fromCString(hostname) {                                addresses.append(address)                            }                    }                }            }        }        freeifaddrs(ifaddr)    }    return addresses}
0 0
原创粉丝点击