-
Добрый день Определил через WinPCap количество и имена сетевых адаптеров. Теперь пытаюсь определить их характеристики с помощью PacketGetNetInfoEx: var pr:boolean; s:string; i,n:integer; NPFIFAddr:PNPFIFAddr; begin for i:=0 to AdapterCnt-1 do begin s:=AdapterNames[i]; pr:=PacketGetNetInfoEx(pchar(s),NPFIFAddr,@n); if pr then showmessage(inttostr(n)); end; end;
PacketGetAdapterNames дает наличие в системе 2 адаптеров. Вызов PacketGetNetInfoEx для каждого адаптера отдельно (с указанием его имени в вызове функции) дает для первого адаптера n=0, для второго - n=1. При выполнении приведенного кода для обоих адаптеров возвращается 0, а в NPFIFAddr ничего не заполняется. При выполнении цикла в обратном порядке (for i:=AdapterCnt-1 downto 0 do) все работает. Вопрос: почему не работает прямой порядок? Неужто если натывкаемся на адаптер, у которого возвращается 0, то для всех остальных тоже будет 0? Что-то не верится...
-
-
n:= Length(NPFIFAddr) * SizeOf(TNPFIFAddr);
-
> Rouse_ © > n:= Length(NPFIFAddr) * SizeOf(TNPFIFAddr);
- там исходники есть, при просмотре которых видно, что sizeof - это глюк матрицы... На реальном опыте это подтверждается...
-
Согласен... приписку в скобках не прочитал :) > Size of the array (in npf_if_addr).
|