怎样读取网卡的ID号(100分)

  • 主题发起人 zhengyong
  • 开始时间
Z

zhengyong

Unregistered / Unconfirmed
GUEST, unregistred user!
想怎样读取网卡的ID号,不知怎么读?
 
你说的是网卡的MAC地址吧
下面是我的例子,测试过,没问题
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 //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.
 
如果是local,net如何搞到mac,已知ip.
 
看看这个,可能有用
http://download.fzu.edu.cn/delphi/DELPHI/D32FREE/BBWININFO.ZIP

能够得知网络卡 MAC Address、BIOS 名称、BIOS 版本、计算机名称等多项系统信息之构件 ( 1.0 版,附源码 ),
作者: Bulent Binici。
 
sorry,how to install 构件 .
unzip three files
file_id.diz,wininfo.dcr,wininfo.pas
thanks A LOT
 
我已装上,soory,

王寒松:
your example 是不是要
uses加上whaich 单元.
mayday:
http://download.fzu.edu.cn
有个ethernet.zip是不是也能得到local net mac address .

 
实话实说:不知道!
现在我连能装Delphi的机器都没有! :-((
 
kaka:
example不需要US WHAICH, 我在编译时记的需要DELPHI的SOURCE目录里的
NB30。PAS
你在SOURCE目录里找找NB*。PAS
 
用ipconfig直接查
 
多人接受答案了。
 

Similar threads

回复
0
查看
461
不得闲
回复
0
查看
671
不得闲
回复
0
查看
821
不得闲
顶部