Получение MAC адреса компьютера - Форум
Четверг, 19.06.2025, 22:30 | Приветствую Вас Гость

Жми-форум обо всём

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

  • Страница 1 из 1
  • 1
Модератор форума: RoMkA29  
Получение MAC адреса компьютера
RoMkA29Дата: Воскресенье, 19.05.2013, 23:25 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 264
Репутация: 3
Статус: Offline
Получение MAC адреса компьютера

Для того, чтобы этот код работал, необходимо включить в проект юнит NB30. Простой вызов функции GetMACAddress возвращает адрес первого установленного сетевого адаптера.

Совместимость: Delphi 3.x (или выше)

Данный пример был составлен на основе статьи на сайте Borland:
http://community.borland.com/article/0,1410,26040,00.html

Код
uses  
   NB30;  

function GetAdapterInfo(Lana: Char): 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;
 
  • Страница 1 из 1
  • 1
Поиск:

Навигация
Block title
Форма входа
Наш бот
Наш бот информер

ICQ:636-921-022
Jabber:zhmibot@jabber.ru
Случайные картинки
Случайная музыка
[11.03.2013][mp3]
Анекдоты про наркоманов - Прикольно, послушайте (0)
Анекдоты про наркоманов - Прикольно, послушайте
[12.03.2013][mp3]
Schok/Dakota – не держи меня, оставь возьми ударь если хочеш (0)
Schok/Dakota – не держи меня, оставь возьми ударь если хочеш
[11.03.2013][mp3]
Johnyboy - Вспоминай меня ночью (0)
Johnyboy - Вспоминай меня ночью
Опрос
Вы нашли тут что искали?
Всего ответов: 17
Поиск
Обновление
  • Рейтинг трейдеров 2025: кому можно доверять (0)
  • Красивое вертикальное зеленое меню для uCoz (1)
  • Раздача Халявы (ICQ Дедиков Wmz Wmr, Steam аккаунты к играм (2)
  • Куплю, обмен швейцарские франки 8 серии, английские фунты (2)
  • Мы же русские люди, нам не привыкать привыкать! (1)
  • Статистика


    Яндекс.Метрика
    Статистика