zoukankan      html  css  js  c++  java
  • Delphi获取本机的MAC地址

    Delphi获取本机的MAC地址:


    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;


    调用: s:= GetMACAddress;

  • 相关阅读:
    xps转换为pdf工具
    公差与配合教案 2
    C#与C++抉择【z】
    MATLAB C#混合编程demo
    数据结构 第6章 图
    科技英语翻译480句 (九) 举例、异同、例外
    理论与数学应用互助交流QQ群(6314910) 简介【谢绝转载】
    数据结构 第3章 栈和队列
    精通Matlab与C/C++混合程序设计(第2版)
    科技英语翻译480句 (三) 原因、结果
  • 原文地址:https://www.cnblogs.com/xtfnpgy/p/9285388.html
Copyright © 2011-2022 走看看