取MAC(非集成网卡):

作者: samool    分类: Develop    发布时间: 01-22 15:09    浏览次数:     无留言

取MAC(非集成网卡):  
  usese  
      nb30;  
   
  function   NBGetAdapterAddress(a:   Integer):   string;  
  var  
      NCB:   TNCB;   //   Netbios   control   block   //NetBios控制块  
      ADAPTER:   TADAPTERSTATUS;   //   Netbios   adapter   status//取网卡状态  
      LANAENUM:   TLANAENUM;   //   Netbios   lana  
      intIdx:   Integer;   //   Temporary   work   value//临时变量  
      cRC:   Char;   //   Netbios   return   code//NetBios返回值  
      strTemp:   string;   //   Temporary   string//临时变量  
  begin  
      //   Initialize  
      Result   :=   '';  
      try  
          //   Zero   control   blocl  
          ZeroMemory(@NCB,   SizeOf(NCB));  
          //   Issue   enum   command  
          NCB.ncb_command   :=   Chr(NCBENUM);  
          cRC   :=   NetBios(@NCB);  
          //   Reissue   enum   command  
          NCB.ncb_buffer   :=   @LANAENUM;  
          NCB.ncb_length   :=   SizeOf(LANAENUM);  
          cRC   :=   NetBios(@NCB);  
          if   Ord(cRC)   <>   0   then  
              exit;  
          //   Reset   adapter  
          ZeroMemory(@NCB,   SizeOf(NCB));  
          NCB.ncb_command   :=   Chr(NCBRESET);  
          NCB.ncb_lana_num   :=   LANAENUM.lana[a];  
          cRC   :=   NetBios(@NCB);  
          if   Ord(cRC)   <>   0   then  
              exit;  
          //   Get   adapter   address  
          ZeroMemory(@NCB,   SizeOf(NCB));  
          NCB.ncb_command   :=   Chr(NCBASTAT);  
          NCB.ncb_lana_num   :=   LANAENUM.lana[a];  
          StrPCopy(NCB.ncb_callname,   '*');  
          NCB.ncb_buffer   :=   @ADAPTER;  
          NCB.ncb_length   :=   SizeOf(ADAPTER);  
          cRC   :=   NetBios(@NCB);  
          //   Convert   it   to   string  
          strTemp   :=   '';  
          for   intIdx   :=   0   to   5   do  
              strTemp   :=   strTemp   +   InttoHex(Integer(ADAPTER.adapter_address[intIdx]),   2);  
          Result   :=   strTemp;  
      finally  
      end;  
  end;  

 调用:  
  edit1.Text:=NBGetAdapterAddress(12);  

Tags: none

添加新评论