Локальный IP-адрес сетевой карты — облегченный драйвер фильтра

Как нам получить набор локальных IP-адресов сетевой карты в NDIS 6. Я буду выполнять некоторые модификации IP-заголовков в полученных кадрах Ethernet, поэтому буду искать локальный IP-адрес карты сетевой карты, к которой прикреплен мой фильтр.


person Rami    schedule 08.02.2017    source источник


Ответы (1)


Как правило, драйвер NDIS LWF (который работает на уровне 2 стека OSI) является нарушением многоуровневого взаимодействия с IP-адресами (которые находятся на уровне 3 стека OSI).

Если у вас есть для этого веская причина, вы можете запросить GetUnicastIpAddressTable. Имейте в виду, что сетевая карта может не иметь никакого IP-адреса (например, она используется для протоколов, отличных от IP). Или он может передавать IP-трафик, но ОС не знает ни о каком IP-адресе (например, гостевая виртуальная машина отправляет IP-трафик через сетевую карту хоста, но только гость действительно знает IP-адрес).

Другими словами, у сетевых адаптеров на самом деле нет имеющих IP-адресов. В лучшем случае можно сказать, что сетевая карта может быть связана с IP-интерфейсом, который имеет некоторое количество IP-адресов.

person Jeffrey Tippet    schedule 17.02.2017
comment
Я буду устанавливать IP-адрес для адаптера вручную, вместо автоматического получения IP-адреса в свойствах IPv4. Когда драйвер подключен к адаптеру, который устанавливает IP-адрес, мне нужно получить IP-адрес и использовать его в моем драйвере. Как вы предложили, я использовал GetUnicastIpAddressTable, но я не получаю IP-адрес, соответствующий подключенному адаптеру. У меня есть два адаптера, для которых я установил IP-адрес 10.135.24.1 (адаптер 1) и 10.136.24.0 (адаптер 2). При подключении к адаптеру 1 я получаю IP-адрес адаптера 2 и петлю в записях таблицы адресов. то же самое в случае с Adapter1. - person Rami; 03.03.2017