有没有读取网卡MAC地址的源代码或组件~~??(50分)

  • 主题发起人 主题发起人 gf.z
  • 开始时间 开始时间
G

gf.z

Unregistered / Unconfirmed
GUEST, unregistred user!
有没有读取网卡MAC地址的源代码或组件~~??
修改MAC地址的呢???
(没分了!!!))
 
获得本机的MAC地址
uses nb30;
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[intIdx]),2);
Result := strTemp;
Finally
End;
End;

End.

能改吗??????????????
 
可以参考 Jedi Code Library(JCL),里面的函数很多、很有用!
建议多看看。代码我不贴出来了。
 
后退
顶部