Home

Page 248
Page 248
background image

Сеть на низком уровне

идет заполнение структуры

 NCB.

 Указан тип команды

 (говорит, что

необходимо перечислить сетевые устройства), а также буфер (свойство Buf)

и его размер (свойство Length). После этого выполняется NetBIOS-команда

с помощью функции

 Если результат нормальный, то моя функ-

ция возвращает количество найденных устройств.

После получения информации о сетевых устройствах запускается цикл,

в котором перебираем эти устройства и ищем у них МАС-адрес:

for i := 0 to

 - 1) do

begin

if

 then break;

end;

После этого запускается цикл для всех найденных устройств

 (LANA).

 Внутри

цикла по идее мы должны просто определить МАС-адрес устройства, но не
тут-то было. В NetBIOS, прежде чем использовать любой LANA, его надо
обнулить. Для этого вызываем свою процедуру NbReset, в которой выполня-

ем

 пренебрегайте этим действием даже ес-

ли уверены, что программа сработает без этой команды. Никогда нельзя

быть уверенным на 100%. Вот так выглядит функция NbReset:

function

 Word;

var

NCB: TNCB;

begin

 0);

 NCB_RESET;

 := 1;

Result :=

end;

Ну а теперь после перечисления и обнуления можно смело вызывать функ-

цию NbGetMacAddr, которая как раз и определит соответствующий устройст-

ву МАС-адрес:

function

 String;

 Integer): String;

var

NCB: TNCB;

AdpStat: TAdpStat;

RetCode: Word;

begin

FillChar(NCB, SizeOf(NCB), 0);


Copyright © 2020 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.