?? 請問應如何通過程序獲得本機的mac地址? (2000年7.txt
字號:
請問應如何通過程序獲得本機的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.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -