【发布时间】:2020-01-22 21:20:02
【问题描述】:
WWDC2019 的“网络进步”演讲中有一个使用 NWEthernetChannel 监控自定义(非 IP)协议的示例。这是针对 MacOS 的。
import Foundation
import Network
let path = NWPathMonitor(requiredInterfaceType: .wiredEthernet).currentPath
guard let interface = path.availableInterfaces.first else {
fatalError("not connected to Internet")
}
let channel = NWEthernetChannel(on: interface, etherType: 0xB26E)
对于我的应用程序,我需要使用NWEthernetChannel 来监控以太网链路上的自定义协议(实际上是思科发现协议和/或链路层发现协议),该以太网链路没有 IP Internet 连接(但它确实具有物理链接到交换机)。如果 NWPath 是通往 Internet 的有效路径,NWPath 似乎只会给我一个 NWInterface 结构。
如何在没有有效 Internet 路径的情况下在 Mac 上获取 NWInterface 结构列表?
在我的特定用例中,我只对 .wiredEthernet. 感兴趣
在一个盒子上获取所有NWInterfaces 的完整数组就足够了,但到目前为止,我发现“出售”NWInterfaces 的唯一方法是使用NWPathMonitor,这似乎需要IP 连接。
【问题讨论】:
标签: swift macos network.framework