Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1458549557
Signal
2016-03-21 11:39
2018.04.01
IWebBrowser2 не получается получить текст


2-1459961908
Погроммист
2016-04-06 19:58
2018.04.01
Как определить MAC адрес НУЖНОГО адаптера


2-1459516762
mtk
2016-04-01 16:19
2018.04.01
Отслеживание изменений в директории


15-1471706996
Fox
2016-08-20 18:29
2018.04.01
Интернет-радио


1-1356702635
vlk32
2012-12-28 17:50
2018.04.01
Ошибка в стандартной библиотеке?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский