если кому еще нужно, то вот вроде рабочий вариант с проверкой флагов, тк без флагов всегда возвращается true:
func isWifiEnabled() -> Bool {
var ifaddr: UnsafeMutablePointer<ifaddrs>?
var awdl = 0
if getifaddrs(&ifaddr) == 0, let firstAddr = ifaddr {
for ptr in sequence(first: firstAddr, next: { $0.pointee.ifa_next }) {
let name = String(cString: ptr.pointee.ifa_name)
if name == "awdl0" {
let flags = ptr.pointee.ifa_flags
let isUp = (flags & UInt32(IFF_UP)) != 0
let isRunning = (flags & UInt32(IFF_RUNNING)) != 0
// freeifaddrs(ifaddr)
print("wifi: awdl\(awdl) - \(isUp), r: \(isRunning)")
if isUp && isRunning{
awdl += 1 // isUp && isRunning
}
}
}
}
freeifaddrs(ifaddr)
return awdl > 1
}