老问题:如何得到网卡号(必须以为例DELPHI)

east_sun 2000-02-16 06:44:00
我得到过大家的帮助但没有成功,VC等我知道可以现必须使用DELPHI。
请给出例子
谢谢!!!!
...全文
163 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lin 2000-02-16
  • 打赏
  • 举报
回复
我有一个控件,要不要?
kxy 2000-02-16
  • 打赏
  • 举报
回复
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.
欢迎去http://kangxinyong.spedia.net
radish 2000-02-16
  • 打赏
  • 举报
回复
我有c++BUILDER的辕马(radsworld.yeah.net),是把从http://forum.coolhot.com/forum/borland/main.html搜来的DELPHI代码改的(不好意思,原码没留)你去那里搜一搜,发表人是“王发军”,你也可到他的网页(wangfajun.163.net)找找

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧