程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> delphi獲取MAC地址的代碼

delphi獲取MAC地址的代碼

編輯:Delphi

Delphi獲取MAC地址的代碼,用多種方法取得MAC地址,1、通過IP地址取得MAC地址,2、獲取多網卡的Mac地址,下面具體看代碼吧:

1、利用IP地址獲取Mac:

01 uses 02 WinSock; 03 Function sendarp(ipaddr:ulong; 04 temp:dWord; 05 ulMacaddr:pointer; 06 ulMacaddrleng:pointer) : DWord; StdCall; External ‘Iphlpapi.dll’ Name ‘SendARP’; 07 procedure TForm1.Button1Click(Sender: TObject); 08 var 09 myip:ulong; 10 myMac:array[0..5of byte; 11 myMaclength:ulong; 12 r:integer; 13 begin 14 myip:=inet_addr(PChar(’192.168.6.180′)); 15 mymaclength:=length(myMac); 16 r:=sendarp(myip,0,@mymac,@myMaclength); 17 label1.caption:=’errorcode:’+inttostr(r); 18 label2.caption:=format(‘%2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x’,[myMac[0],myMac[1],myMac[2],myMac[3],myMac[4],myMac[5]]); 19 end;

2、獲取多網卡的Mac地址:

vIEw source print? 01 uses nb30; 02 function NBGetAdapterAddress(a: Integer): string; 03 var 04 NCB: TNCB; //NetBiOS控制模塊 05 ADAPTER: TADAPTERSTATUS; //取網卡狀態 06 LANAENUM: TLANAENUM; //NetbiOS lana 07 intIdx: Integer//臨時變量 08 cRC: Char//NetBiOS返回值 09 strTemp: string//臨時變量 10 begin 11 Result := ”; 12 try 13 ZeroMemory(@NCB, SizeOf(NCB)); 14 NCB.ncb_command := Chr(NCBENUM); 15 cRC := NetBiOS(@NCB); 16 NCB.ncb_buffer := @LANAENUM; 17 NCB.ncb_length := SizeOf(LANAENUM); 18 cRC := NetBiOS(@NCB); 19 if Ord(cRC) <> 0 then 20 exit; 21 ZeroMemory(@NCB, SizeOf(NCB)); 22 NCB.ncb_command := Chr(NCBRESET); 23 NCB.ncb_lana_num := LANAENUM.lana[a]; 24 cRC := NetBiOS(@NCB); 25 if Ord(cRC) <> 0 then 26 exit; 27 ZeroMemory(@NCB, SizeOf(NCB)); 28 NCB.ncb_command := Chr(NCBASTAT); 29 NCB.ncb_lana_num := LANAENUM.lana[a]; 30 StrPCopy(NCB.ncb_callname, ‘*’); 31 NCB.ncb_buffer := @ADAPTER; 32 NCB.ncb_length := SizeOf(ADAPTER); 33 cRC := NetBiOS(@NCB); 34 strTemp := ”; 35 for intIdx := 0 to 5 do 36 strTemp := strTemp + InttoHex(Integer(ADAPTER.adapter_address[intIdx]), 2); 37 Result := strTemp; 38 finally 39 end; 40 end;

兩種方法任選 其一吧,習慣哪一種就用哪一種。小貼士:不要照搬代碼哦,最好是先看代碼,然後再自己寫代碼,不懂了再看一次。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved