В беседах «Усовершенствования в сети» для 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
для мониторинга пользовательского протокола (фактически протокола обнаружения Cisco и / или протокола обнаружения канального уровня) на Ethe rnet ссылка, которая не имеет IP-соединения Inte rnet (но имеет физическую ссылку на коммутатор). NWPath, по-видимому, дает мне структуру NWInterface только в том случае, если это допустимый путь к Inte rnet.
Как я могу получить список NWInterface
Structs на Ma c, не имея действительного Inte rnet путь?
В моем конкретном случае использования меня интересует только .wiredEthernet.
Что-то настолько простое, что было бы достаточно получить полный массив всех NWInterfaces
на коробке , но до сих пор единственный способ «продать» NWInterfaces
, который я нашел, - это NWPathMonitor
, который, кажется, требует подключения по IP.