function TForm1.GetMacAddress(index:integer):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);
//将MAC地址转换成字符串
str := '';
for i:=0 to 5 do
str := str + IntToHex(Integer(AdapterS.adapter_address[i]),2); Result := str;
finally
end;
end;这是普通网卡的取法,有没有笔记本的取法?还有就是串行口的网卡号如何取
解决方案 »
- 客户信息管理系统开发时应该包括那些项目
- 已知IE窗口句柄,如何隐藏它在任务栏上的按钮
- Delphi 2006 代号 Dexter 与 C++Builder 10.0 即将推出
- 热烈庆祝饭桶JR又成功骗得了我200分!
- 用findfirst查找文件后,无法用loadfromfile打开找到的文件,提示cannot open....
- 如何用最简单的方法!把两个数据库内的表进行比较然后把不同的插入即可!
- 触发器问题
- 请问delphi如何打印连续纸发票??????????????????????
- 简单问题:delphi7怎么实现报表打印(在线等先待哦)
- 如何显示一个16进制数?
- DELPHI读硬盘号,各种\数据线的
- FlatStyle 里面的FlatStringGrid 的问题
还有一个问题,读网卡能不能只读固定的一个,而不是哪个在用就读哪个