import Foundation var old: UInt64 = 0 fileprivate func network() { var addresses: UnsafeMutablePointer<ifaddrs>? guard getifaddrs(&addresses) == 0 else { return } guard let firstAddr = addresses else { return } for ptr in sequence(first: firstAddr, next: { $0.pointee.ifa_next }) { let address = ptr.pointee let rawData = address.ifa_data if let rawData = rawData { let data: if_data = rawData.load(as: if_data.self) let up = data.ifi_obytes let name = String(cString: address.ifa_name) if name == "en1" { if old == 0 { old = UInt64(up) } let diff = UInt64(up) - old Swift.print(name, Double(diff) / 1024.0 / 1024.0) // MB/s old = UInt64(up) } } } freeifaddrs(addresses) } for _ in 0 ..< 128 { network() sleep(1) }