Форум: "Начинающим";
Текущий архив: 2018.04.01;
Скачать: [xml.tar.bz2];
ВнизКак определить MAC адрес НУЖНОГО адаптера Найти похожие ветки
← →
Погроммист (2016-04-06 19:58) [0]
function GetAdapterInfo(Lana: Ansichar): String;
var
Adapter: TAdapterStatus;
NCB: TNCB;
begin
FillChar(NCB, SizeOf(NCB), 0);
NCB.ncb_command := char(NCBRESET);
NCB.ncb_lana_num := Lana;
if Netbios(@NCB) <> char(NRC_GOODRET) then
begin
Result := "mac not found";
Exit;
end;
FillChar(NCB, SizeOf(NCB), 0);
NCB.ncb_command := char(NCBASTAT);
NCB.ncb_lana_num := Lana;
NCB.ncb_callname := "*";
FillChar(Adapter, SizeOf(Adapter), 0);
NCB.ncb_buffer := @Adapter;
NCB.ncb_length := SizeOf(Adapter);
if Netbios(@NCB) <> char(NRC_GOODRET) then
begin
Result := "mac not found";
Exit;
end;
Result := IntToHex(Byte(Adapter.adapter_address[0]), 2) + "-" +
IntToHex(Byte(Adapter.adapter_address[1]), 2) + "-" +
IntToHex(Byte(Adapter.adapter_address[2]), 2) + "-" +
IntToHex(Byte(Adapter.adapter_address[3]), 2) + "-" +
IntToHex(Byte(Adapter.adapter_address[4]), 2) + "-" +
IntToHex(Byte(Adapter.adapter_address[5]), 2);
end;
function GetMACAddress: string;
var
AdapterList: TLanaEnum;
NCB: TNCB;
begin
FillChar(NCB, SizeOf(NCB), 0);
NCB.ncb_command := char(NCBENUM);
NCB.ncb_buffer := @AdapterList;
NCB.ncb_length := SizeOf(AdapterList);
Netbios(@NCB);
if Byte(AdapterList.length) > 0 then
Result := GetAdapterInfo(AdapterList.Lana[0])
else
Result := "mac not found";
end;
использую эти функции для определения мак адреса. Но возникла проблема, помимо основного адаптера у меня еще есть 2 от виртуальных машин. И проблема заключается в том, что эта функция возвращает то мак адрес одного адаптера то другого(после перезагрузки компа меняется адаптер в 0 элементе). Как получить мак адрес реального моего адаптера? В принципе меня бы и любой устроил, но только чтобы всегда был один и тот же. Я так понял что AdapterList это вроде как список адаптеров, но понять в этом "списке" я ничего не смог, т.к. там какая то билиберда.
← →
Rouse_ © (2016-04-06 22:22) [1]http://rouse.drkb.ru/network.php#netifenum
← →
Погроммист (2016-04-07 07:01) [2]на win7 64x не работает. Она показывает 8 строчек с иероглифами и ни одного мак адреса и вообще ни одного параметра ни у одного интерфейса не определяет.
← →
NoUser © (2016-04-08 16:47) [3]>[1], [2]
IP_ADDRESS_STRING = record
S: array [0..15] of Char; // <- AnsiChar
end;
AdapterName: array [0..MAX_ADAPTER_NAME_LENGTH + 3] of Char; // <- AnsiChar
Description: array [0..MAX_ADAPTER_DESCRIPTION_LENGTH + 3] of Char; // <- AnsiChar
← →
Rouse_ © (2016-04-08 19:00) [4]
> Погроммист (07.04.16 07:01) [2]
> на win7 64x не работает. Она показывает 8 строчек с иероглифами
> и ни одного мак адреса и вообще ни одного параметра ни у
> одного интерфейса не определяет.
Так бывает - на то он и пример.
Включи мозг - и эх как все заработает
← →
Signal (2016-04-09 02:23) [5]добавь имя сетевого адаптера, вот и все включение мозга
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2018.04.01;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.001 c