Delphi使用NB30单元获取NetBIOS

function GetNetBIOSAddress : string;
var
  ncb: TNCB;
  status: TAdapterStatus;
  lanenum: TLanaEnum;
  procedure ResetAdapter(num : char);
  begin
    fillchar(ncb,sizeof(ncb), 0);
    ncb.ncb_command := char(NCBRESET);
    ncb.ncb_lana_num := num;
    Netbios(@ncb);
  end;
var
  i: integer;
  lanNum: char;
  address: record
  part1: Longint;
  part2: Word;
  end absolute status;
begin
   Result:='';
   fillchar(ncb, sizeof(ncb), 0);
   ncb.ncb_command:=char(NCBENUM);
   ncb.ncb_buffer:=@lanenum;
   ncb.ncb_length:=sizeof(lanenum);
   Netbios(@ncb);
   if lanenum.length=#0 then exit;
   lanNum:=lanenum.lana[0];
   ResetAdapter(lanNum);
   fillchar(ncb, sizeof(ncb), 0);
     ncb.ncb_command := char(NCBASTAT);
     ncb.ncb_lana_num := lanNum;
     ncb.ncb_callname[0] := '*';
     ncb.ncb_buffer := @status;
     ncb.ncb_length := sizeof(status);
   Netbios(@ncb);
   ResetAdapter(lanNum);
   for i := 0 to 5 do
   begin
     result := result+inttoHex(integer(Status.adapter_address[i]),2);
     if (i<5) then
     result := result+'-';
   end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text := GetNetBIOSAddress;
end;



上一篇: Delphi下重载窗体CreateParams翻转关闭按钮
下一篇: Delphi使用INDY获取计算机名和IP
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭