怎样获取网卡的MAC地址?
解决方案 »
- 在adoquery中用,fkLookup字段出錯
- 如何使用钩子对磁盘上文件的创建和修改操作做监控!
- 返回信号
- 替我看一下,谢谢!
- 如何将combobox中的text作为query组件的查询条件进行查询
- 需要导入SQL的excel的列名出现空格,如何先批量去除这些空格再导入EXCEL。具体给出源代码吧谢谢
- 大家快过来看:Delphi的Bug!?
- 求用delphi编写的语法分析程序,使用LL(1)分析法。送一百分。
- 请问在TADODataset中加入一条记录代码该如何写
- 如何实现不读盘监测软驱中是否有磁盘,有偿!
- 请问如何得到汉字的gb2312编码的十六进制表示?在线等。。。
- 在线等-100分(第一次用Rave,请大家帮个忙)
Google上很多例子的http://lysoft.7u7.net
请参考这个地址:http://www.delphifans.com/SoftView/SoftView_1171.html
uses
WinSock;Function sendarp(ipaddr:ulong;
temp:dword;
ulmacaddr:pointer;
ulmacaddrleng:pointer) : DWord; StdCall; External 'Iphlpapi.dll' Name 'SendARP';procedure TForm1.Button1Click(Sender: TObject);
var
myip:ulong;
mymac:array[0..5] of byte;
mymaclength:ulong;
r:integer;
begin
myip:=inet_addr(PChar('192.168.6.180'));
mymaclength:=length(mymac);
r:=sendarp(myip,0,@mymac,@mymaclength);
label1.caption:='errorcode:'+inttostr(r);
label2.caption:=format('%2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x',[mymac[0],mymac[1],mymac[2],mymac[3],mymac[4],mymac[5]]);
end;
var
ncb : TNCB;
s:string;
Adapt : TAdapterStatus;
LanaEnum : TLanaEnum;
i, j, m : Integer;
strPart, strMac : string;
begin
FillChar(ncb, SizeOf(TNCB), 0);
ncb.ncb_command := Char(NCBEnum);
ncb.ncb_buffer := PChar(@lanaEnum);
ncb.ncb_length := SizeOf(TLanaEnum);
s:=Netbios(@ncb);
for i := 0 to Integer(LanaEnum.length)-1 do begin
FillChar(ncb, SizeOf(TNCB), 0);
ncb.ncb_command := Char(NCBReset);
ncb.ncb_lana_num := LanaEnum.lana[i];
Netbios(@ncb);
Netbios(@ncb);
FillChar(ncb, SizeOf(TNCB), 0);
ncb.ncb_command := Chr(NCBAstat);
ncb.ncb_lana_num := lanaEnum.lana[i];
ncb.ncb_callname := '* ';
ncb.ncb_buffer := PChar(@adapt);
ncb.ncb_length := SizeOf(TAdapterStatus);
m:=0;
if (Win32Platform = VER_PLATFORM_WIN32_NT) then m:=1;
if m=1 then begin
if Netbios(@ncb) = Chr(0) then
strMac := '';
for j := 0 to 5 do begin
strPart := IntToHex(integer(adapt.adapter_address[j]), 2);
strMac := strMac + strPart + '-';
end;
SetLength(strMac, Length(strMac)-1);
end;
if m=0 then
if Netbios(@ncb) <> Chr(0) then begin
strMac := '';
for j := 0 to 5 do begin
strPart := IntToHex(integer(adapt.adapter_address[j]), 2);
strMac := strMac + strPart + '-';
end;
SetLength(strMac, Length(strMac)-1);
end;
end;
Result:=strmac;
end;