在winxp環境下會讀不到請大大們看看要如何修正 |
尚未結案
|
seed93
一般會員 ![]() ![]() 發表:1 回覆:1 積分:0 註冊:2003-03-26 發送簡訊給我 |
這是在這個論壇中看到的...但是我把他編過在XP下會找不到...不知道是何原因
請大家告訴我好嗎
如何取的網卡的MAC號
簡介:
function TForm1.NBGetAdapterAddress(a: integer): String;
//a指定多個網卡適配器中的哪一個0,1,2...
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[intIdx]),2);
Result := strTemp;
Finally
End;
|
RaynorPao
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 這是在這個論壇中看到的...但是我把他編過在XP下會找不到...不知道是何原因 請大家告訴我好嗎 如何取的網卡的MAC號 簡介: function TForm1.NBGetAdapterAddress(a: integer): String; //a指定多個網卡適配器中的哪一個0,1,2... 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[intIdx]),2); Result := strTemp; Finally End;seed93 你好: 使用此方式的先決條件,是在你的作業系統中要先安裝 NetBios 才行喔 不知道是不是這個原因呢??
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
seed93
一般會員 ![]() ![]() 發表:1 回覆:1 積分:0 註冊:2003-03-26 發送簡訊給我 |
|
jackkcg
站務副站長 ![]() ![]() ![]() ![]() ![]() 發表:891 回覆:1050 積分:848 註冊:2002-03-23 發送簡訊給我 |
安裝ipx 通訊協定之後 802.2或802.3 這樣就解決了 不然可以使用command的ipconfig /all之後的mac資訊複製於txt在抓值也市可以
此法 不論98 2000 xp都ok 不過 和上面的就不一樣的了 哈哈 *********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind to make knowledge together!
希望能大家敞開心胸,將知識寶庫結合一起
------
********************************************************** 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |