Delphi获取网卡MAC地址

    技术2026-06-18  10

    //MAC地址 function GetPhysicalAddress: string; //0指定多个网卡适配器中的第一个,你可以改这个参数 var NCB: TNCB; // Netbios control block file://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[0];       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[0];       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;

    最新回复(0)