На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Rouse_, jack128, Krid
  
    > Получение MAC адреса компьютера
      Автор: Daniel Wischnewski

      Для того, чтобы этот код работал, необходимо включить в проект юнит 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;
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0155 ]   [ 16 queries used ]   [ Generated: 2.05.24, 03:49 GMT ]