swift 获取手机SSID和BSSID以及IP地址

获取手机SSID和BSSID以及IP地址

import SystemConfiguration

import SystemConfiguration.CaptiveNetwork

extension NSObject{

    func GetIPAddresses() -> String? {

        var addresses = [String](https://www.jianshu.com/writer)

        var ifaddr : UnsafeMutablePointer? = nil

        if getifaddrs(&ifaddr) == 0 {

            var ptr = ifaddr

            while (ptr != nil) {

                let flags = Int32(ptr!.pointee.ifa_flags)

                var addr = ptr!.pointee.ifa_addr.pointee

                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) {

                        var hostname = [CChar](repeating:%200,%20count:%20Int(NI_MAXHOST))

                        if (getnameinfo(&addr, socklen_t(addr.sa_len), &hostname, socklen_t(hostname.count),nil, socklen_t(0), NI_NUMERICHOST) == 0) {

                            if let address = String(validatingUTF8:hostname) {

                                addresses.append(address)

                            }

                        }

                    }

                }

                ptr = ptr!.pointee.ifa_next

            }

            freeifaddrs(ifaddr)

        }

        return addresses.first

    }

    func getUsedSSID() -> (String,String) {

        let interfaces = CNCopySupportedInterfaces()

        var ssid = ""

        var bssid = ""

        if interfaces != nil {

            let interfacesArray = CFBridgingRetain(interfaces) as! Array

            if interfacesArray.count > 0 {

                let interfaceName = interfacesArray[0] as! CFString

                let ussafeInterfaceData = CNCopyCurrentNetworkInfo(interfaceName)

                if (ussafeInterfaceData != nil) {

                    let interfaceData = ussafeInterfaceData as! Dictionary

                    ssid = interfaceData["SSID"]! as! String

                    bssid = interfaceData["BSSID"]! as! String

                }

            }

        }

        return (ssid,bssid)

    }

}
复制代码

转载于:https://juejin.im/post/5d55171e6fb9a06acf2b5519

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值