значит, в драйвере есть хендл NDIS-адаптера, необходимо получить его IP и MAC можно конечно получить имя по хендлу, и выдрать всю нужную инфу из реестра руками, но может есть какие-нибуть готовые API-шки?
Mac Читай FAQ на http://www.pcausa.com/. Вкратце, если хочешь узнать MAC прошитый в сетевуху, надо послать запрос с параметром OID_802_3_PERMANENT_ADDRESS. Ip По хендлу NDIS-адаптера узнать ip? Вопрос некорректный. Можно из драйвера сниффать пакеты, а потом разобрать пакеты и посмотреть, какие там ip-ы, mac-и. Только нафиг это надо? Можно открыть адаптер и посылать туда пакеты с любыми mac-ми и ip-ми. Например, в vmware можно настроить сетевуху, как Bringed: Connected directly to the physical network, задать ей любой mac, ip. Получиться два mac-а и два ip-а на одном адаптере… И что дальше то? Если ты хочешь в драйвере сформировывать пакеты, вставляя туда ip заданный в винде, то копай реестр. NDIS драйверу вообще положить на то, какой там ip будет использоваться при передаче/приеме пакетов. P.s. Перечитай еще раз NDIS Protocol Drivers в MSDN’е.
Поправте меня если я ошибаюсь: На адптере может же "висеть" несколько соединений с различными IP. То есть однозначно определить ip не удастся, только MAC.
to Cr4sh Я так понял, что ты все-таки формируешь пакеты... Для этого OID_802_3_CURRENT_ADDRESS тебе еще в помощь . На сколько я помню, winxp при загрузке один раз считывает с адаптера mac и кладет его в реестр. В ходе работы Ось пользуется этим значением из реестра. Это я к тому, что запрос с параметром OID_802_3_PERMANENT_ADDRESS не всегда равен запросу с OID_802_3_CURRENT_ADDRESS параметром.
ptlrs списибо ещё раз, очень важное замечание (на этой фиче основывается принцип работы разного рода софта, для смены MAC-адресса) >> Я так понял, что ты все-таки формируешь пакеты... угу, решил написать свою ядерную socket-библиотеку с tcpip стеком, for fun and skills up =)
кхе, кхе... с памятью у меня плохо (очень плохо). При загрузке windows ничего не кладет... Т.е. вообще она кладет, но совсем не то и не в ту ветку реестра p.s. Все дело в присутствии/отсутствии строкового NetworkAddress параметра в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{GUID}\00XX и его значении p.s.p.s. Ну вот, теперь можно накатать прогу аля SMAC и продавать по $19.99 ... Да, да, я на полном серьезе. Капусту срубите