首页 > 代码库 > 取Mac地址
取Mac地址
uses Nb30;
//一般用默认的 0 就可以了
function GetMacAddress(const Index:Integer =0):string; var ncb : TNCB; {NetBios控制块} AdapterS : TAdapterStatus; {网卡状态结构} LanaNum : TLanaeNum; {Netbios Lana} i : Integer; rc : Char; {NetBios的返回代码} str : String; begin Result := ‘‘; try ZeroMemory(@ncb, SizeOf(ncb)); {NetBios控制块清零} ncb.ncb_command := chr(NCBENUM); {ENUM} rc := NetBios(@ncb); {取返回代码} ncb.ncb_buffer := @LanaNum; {再一次处理ENUM命令} ncb.ncb_length := SizeOf(LanaNum); rc := NetBios(@ncb); {取返回代码} if Ord(rc)<>0 then Exit; ZeroMemory(@ncb, SizeOf(ncb)); {NetBios控制块清零} ncb.ncb_command := chr(NCBRESET); ncb.ncb_lana_num := LanaNum.lana[index]; rc := NetBios(@ncb); if ord(rc)<>0 then Exit; ZeroMemory(@ncb, SizeOf(ncb)); {取网卡的状态} ncb.ncb_command := chr(NCBASTAT); ncb.ncb_lana_num := LanaNum.lana[index]; StrPCopy(ncb.ncb_callname,‘*‘); ncb.ncb_buffer := @AdapterS; ncb.ncb_length := SizeOf(AdapterS); rc := NetBios(@ncb); str := ‘‘; {将MAC地址转换成字符串} for i:=0 to 5 do str := str + IntToHex(Integer(AdapterS.adapter_address[i]),2); Result := str; if Result <>‘‘ then begin Result :=Copy(Result ,1,2)+‘-‘+Copy(Result ,3,2) +‘-‘+Copy(Result ,5,2) +‘-‘+Copy(Result ,7,2) +‘-‘+Copy(Result ,9,2)+‘-‘ +Copy(Result ,11,2) end; finally end; end;
取Mac地址
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。