自己对DELPHI学习的一点体会

源代码在线查看: 请问应如何通过程序获得本机的mac地址? (2000年7.txt

软件大小: 771 K
上传用户: pipinooad
关键词: DELPHI
下载地址: 免注册下载 普通下载 VIP

相关代码

				请问应如何通过程序获得本机的MAC地址? (2000年7月22日) 
				
				本站更新  分类:   作者:大富翁论坛  推荐:   阅读次数:758  
				(http://www.codesky.net)  
				
				--------------------------------------------------------------------------------
				
				
				
				--------------------------------------------------------------------------------
				来自:fireboy 时间:00-6-28 23:05:07 ID:273284 
				我现在希望通过程序获得本机的MAC地址,不知该怎末做,请大家帮忙了。
				
				
				
				--------------------------------------------------------------------------------
				来自:LawrenceZhang 时间:00-6-29 7:28:43 ID:273401 
				Function NBGetAdapterAddress(a:integer) : String; 
				Implementation 
				
				{$R *.DFM} 
				
				Procedure TForm1.Button1Click(Sender : TObject); 
				Begin 
				label1.Caption:=NBGetAdapterAddress(StrtoInt(Edit1.Text)); 
				End; 
				
				Function NBGetAdapterAddress(a:Integer) : String; 
				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[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[in 
				tIdx]),2); 
				Result := strTemp; 
				Finally 
				End; 
				End; 
				
				
				End. 
				
				
				
				 
				 
							

相关资源