📄 unit1.~pas
字号:
//加入nb3.pas单元
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,nb30;
type
TfrmMain = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
Label5: TLabel;
Edit5: TEdit;
Label6: TLabel;
Edit6: TEdit;
Label7: TLabel;
Edit7: TEdit;
Label8: TLabel;
Edit8: TEdit;
Label9: TLabel;
Edit9: TEdit;
Label10: TLabel;
Edit10: TEdit;
Function NBGetAdapterAddress(adapterNum:integer):String;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.DFM}
function TfrmMain.NBGetAdapterAddress(adapterNum: integer): String;
//adapter00为指定的网卡适配器
Var
NCB:TNCB; // NetBios控制块
ADAPTER : TADAPTERSTATUS; // 获取网卡状态
LANAENUM : TLANAENUM; // Netbios lana
intIdx : Integer; // 临时变量
cRC : Char; // NetBios返回值
strTemp : String; // 临时变量
Begin
Result := '';
Try
// 清空控制块
ZeroMemory(@NCB, SizeOf(NCB));
NCB.ncb_command:=Chr(NCBENUM);
cRC := NetBios(@NCB);
// 重新设置enum命令
NCB.ncb_buffer := @LANAENUM;
NCB.ncb_length := SizeOf(LANAENUM);
cRC := NetBios(@NCB);
If Ord(cRC)<>0 Then
exit;
// 重新设定网卡
ZeroMemory(@NCB, SizeOf(NCB));
NCB.ncb_command := Chr(NCBRESET);
NCB.ncb_lana_num := LANAENUM.lana[adapterNum];
cRC := NetBios(@NCB);
If Ord(cRC)<>0 Then
exit;
// 获取网卡地址
ZeroMemory(@NCB, SizeOf(NCB));
NCB.ncb_command := Chr(NCBASTAT);
NCB.ncb_lana_num := LANAENUM.lana[adapterNum];
StrPCopy(NCB.ncb_callname, '*');
NCB.ncb_buffer := @ADAPTER;
NCB.ncb_length := SizeOf(ADAPTER);
cRC := NetBios(@NCB);
// 将获得信息转换为字符串
strTemp := '';
For intIdx := 0 To 5 Do
strTemp := strTemp + InttoHex(Integer(ADAPTER.adapter_address[intIdx]),2);
Result := strTemp;
Finally
End;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
Edit1.Text:=NBGetAdapterAddress(0);
Edit2.Text:=NBGetAdapterAddress(1);
Edit3.Text:=NBGetAdapterAddress(2);
Edit4.Text:=NBGetAdapterAddress(3);
Edit5.Text:=NBGetAdapterAddress(4);
Edit6.Text:=NBGetAdapterAddress(5);
Edit7.Text:=NBGetAdapterAddress(6);
Edit8.Text:=NBGetAdapterAddress(7);
Edit9.Text:=NBGetAdapterAddress(8);
Edit10.Text:=NBGetAdapterAddress(9);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -