怎么用DELPHI获取网卡的MAC地址?

解决方案 »

  1.   

    http://topic.csdn.net/t/20020730/14/910652.html
    如果楼主是想获得计算机网卡的MAC地址的话就卡上面的网址,如果不是计算机网卡,那要看厂家提供什么样的二次开发接口
      

  2.   

    function GetAdapterMac(ANo:Integer):String;
    //获取网卡的MAC地址
    var
      Ncb:TNcb;
      Adapter:TAdapterStatus;
      Lanaenum:TLanaenum;
      IntIdx:Integer; //
      cRc:char;
      StrTemp:String;
    begin
      Result:='';
      Try
        ZeroMemory(@Ncb,SizeOf(Ncb));
        Ncb.ncb_command:=Chr(NCbenum);
        NetBios(@NCb);
        Ncb.ncb_buffer:=@Lanaenum; //再处理enum命令
        Ncb.ncb_length:=SizeOf(Lanaenum);
        cRc:=NetBios(@Ncb);
        if ord(cRc)<>0 then exit;
        ZeroMemory(@Ncb,SizeOf(Ncb)); //适配器清零
        Ncb.ncb_command:=Chr(NcbReset);
        Ncb.ncb_lana_num:=Lanaenum.lana[aNo];
        cRc:=NetBios(@Ncb);
        if ord(cRc)<>0 then exit;
    //得到适配器状态
        ZeroMemory(@Ncb,SizeOf(Ncb));
        Ncb.ncb_command:=Chr(NcbAstat);
        Ncb.ncb_lana_num:=Lanaenum.lana[aNo];
        StrPcopy(Ncb.ncb_callname,'*');
        Ncb.ncb_buffer:=@Adapter;
        Ncb.ncb_length:=SizeOf(Adapter);
        NetBios(@Ncb);
    //将mac地址转换成字符串输出
        StrTemp:='';
        For IntIdx:=0 to 5 do
          StrTemp:=StrTemp+IntToHex(Integer(Adapter.adapter_address[intIdx]),2);
        Result:=StrTemp;
      finally
      end;
    end;