function   TForm1.GetMacAddress(index:integer):string;
var
      ncb   :   TNCB;                                       //NetBios控制块
      AdapterS   :   TAdapterStatus;         //网卡状态结构
      LanaNum   :   TLanaeNum;                     //Netbios   Lana
      i   :   integer;   
      rc   :   Char;                                         //NetBios的返回代码
      str   :   String;
begin
      Result   :=   '';
      try   
            ZeroMemory(@ncb,   SizeOf(ncb));             //NetBios控制块清零   
            ncb.ncb_command   :=   chr(NCBENUM);         //ENUM   
            rc   :=   NetBios(@ncb);                                 //取返回代码   
    
            ncb.ncb_buffer   :=   @LanaNum;                   //再一次处理ENUM命令   
            ncb.ncb_length   :=   Sizeof(LanaNum);
            rc   :=   NetBios(@ncb);                                 //取返回代码   
    
            if   ord(rc)<>0   then   
                  exit;   
    
            ZeroMemory(@ncb,   Sizeof(ncb));             //NetBios控制块清零   
            ncb.ncb_command   :=   chr(NCBRESET);   
            ncb.ncb_lana_num   :=   LanaNum.lana[index];
            rc   :=   NetBios(@ncb);   
            if   ord(rc)<>0   then   
                  exit;   
            //取网卡的状态   
            ZeroMemory(@ncb,   Sizeof(ncb));   
            ncb.ncb_command   :=   chr(NCBASTAT);   
            ncb.ncb_lana_num   :=   LanaNum.lana[index];   
            StrPCopy(ncb.ncb_callname,'*');
            ncb.ncb_buffer   :=   @AdapterS;
            ncb.ncb_length   :=   SizeOf(AdapterS);
            rc   :=   NetBios(@ncb);   
            //将MAC地址转换成字符串   
            str   :=   '';
            for   i:=0   to   5   do
                  str   :=   str   +   IntToHex(Integer(AdapterS.adapter_address[i]),2);            Result   :=   str;
      finally
      end;
end;这是普通网卡的取法,有没有笔记本的取法?还有就是串行口的网卡号如何取