Получать широковещательные сообщения LLDP (IEEE 802.1AB) с C # или C ++ - PullRequest
1 голос
/ 25 марта 2019

Я хотел бы обнаружить локальные устройства Ethernet в моем приложении C #. Эти устройства отправляют широковещательные сообщения LLDP (протокол обнаружения канального уровня). LLDP также известен как IEEE 802.1 AB и поставляется на уровне OSI 2, что означает чистый Ethernet.

Я уже нашел способ, используя драйвер NDIS, такой как WinPCAP, вместе с оболочкой .net, такой как SharpPCAP. Но: я не хочу нюхать сеть, только читая широковещательные кадры Ethernet согласно IEEE. Поэтому это кажется немного негабаритным ... какие-то другие идеи?

Использование C ++ вместо C #? Это дает преимущество в получении прямого доступа к WinAPI вместо использования удобной, но ограниченной среды .net. Я не очень знаком с WinAPI. Только что проверил документы MS об этом. Я до сих пор не вижу способа получить содержимое LLDP с помощью WinAPI. Есть еще идеи?

...