Добрый день! Пишу NDIS Filter, подскажите, как лучше узнать IP-адрес для каждого из интерфейсов и возможно ли? Видела OID_GEN_NETWORK_LAYER_ADDRESSES, а также варианты с передачей буфера из юзер-мода (получив IP с помощью IpHelper), но хотелось бы узнать наиболее оптимальный вариант, а также как реализовать первый вариант (пока не получилось).
Пожалуй, только парсить пакеты - особенно, если это не просто Ethernet, а PPPoE например, также вариант сделать ARP запрос передав свой MAC адрес и получив ответ, что сложнее просто парсинга.
Парсить исходящие пакеты с интерфейса? Хм, можно, спасибо А как в таком случае узнать, например, маску сети?
парсить входящие DHCP или BOOTP пакеты, они все равно широковещательные, а по их содержимому можно и маску сети и шлюз и днс вытащить
Просто вот проблема, что DHCP не всегда есть и могут быть статические настройки( Надёжно будет взять из реестра (\Registry\Machine\SYSTEM\CurrentControlSet\Services\Tcpip (Tcpip6)) настройки для каждого из адаптеров? Или они могут там быть неверные в каком-то случае?
статические могут быть, разумеется - но это не отменяет наличие динамических настроек в остальной сети, а т.к. они широковещательные, получают их все - отсюда можно брать и маску сети. Насчет адаптеров - если на нем pppoe (у многих провайдеров такие конфигурации есть), ip вообще отключен на этих адаптерах.