求救:如何获取网卡的MAC地址? 各位,请问如何获取网卡的MAC地址。最好给段代码。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://expert.csdn.net/Expert/topic/1780/1780241.xml?temp=.7161219来自超级猛料 如何取的網卡的MAC號簡介:function TForm1.NBGetAdapterAddress(a: integer): String;//a指定多個網卡適配器中的哪一個0,1,2...VarNCB:TNCB; // Netbios control block file://NetBios控制塊ADAPTER : TADAPTERSTATUS; // Netbios adapter status//取網卡狀態LANAENUM : TLANAENUM; // Netbios lanaintIdx : Integer; // Temporary work value//臨時變數cRC : Char; // Netbios return code//NetBios返回值strTemp : String; // Temporary string//臨時變數Begin// InitializeResult := '';Try// Zero control bloclZeroMemory(@NCB, SizeOf(NCB));// Issue enum commandNCB.ncb_command:=Chr(NCBENUM);cRC := NetBios(@NCB);// Reissue enum commandNCB.ncb_buffer := @LANAENUM;NCB.ncb_length := SizeOf(LANAENUM);cRC := NetBios(@NCB);If Ord(cRC)0 Thenexit;// Reset adapterZeroMemory(@NCB, SizeOf(NCB));NCB.ncb_command := Chr(NCBRESET);NCB.ncb_lana_num := LANAENUM.lana[a];cRC := NetBios(@NCB);If Ord(cRC)0 Thenexit;// Get adapter addressZeroMemory(@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 stringstrTemp := '';For intIdx := 0 To 5 DostrTemp := strTemp + InttoHex(Integer(ADAPTER.adapter_address[intIdx]),2);Result := strTemp;FinallyEnd;最後別忘了uses nb30.pas經測試,98,2000下皆可用發表人 - ddy 於 2002/11/23 23:57:24 WINEXEC(PCHAR('CMD /C IPCONFIG /ALL > C:\TEMP.TXT'),SW_HIDE); 关于DELPHI中接口引用中类型转换的问题 图象测量问题......图形高手请进! 高手请进啊! pagecontrol控件问题,(急) MP3解码 请问,help me ’Error loading midas.dll‘应该怎么办? 向access 2000中插值的问题! 在delphi6如何用“dayspon,daysbetween”之类的函数? 一个数据及时刷新的问题? 关于adotable的查询问题,急急急 如何解决?
簡介:
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;最後別忘了uses nb30.pas
經測試,98,2000下皆可用
發表人 - ddy 於 2002/11/23 23:57:24