
14.04.2008, 22:52
|
Новичок
|
|
Регистрация: 11.04.2008
Адрес: В городе-герой Минск
Сообщения: 69
Репутация: 10
|
|
Код:
type
TMacAddress=array [0..7] of byte;
PMibIfTable=^TmibIfTable;
TmibIFtable=packed record
dwnumEntries:dword;
table:TMibIfArray;
end;
PMibiIfarray=^TMibIfArray;
TMibIfArray=array[0..512]of TMibIfRow;
TMibIfRow=packed record
wszName : array[0..255] of WideChar;
dwIndex : DWORD;
dwType : DWORD;
dwMtu : DWORD;
dwSpeed : DWORD;
dwPhysAddrLen : DWORD;
bPhysAddr : array[0..7] of Byte;
dwAdminStatus : DWORD;
dwOperStatus : DWORD;
dwLastChange : DWORD;
dwInOctets : DWORD;
dwInUcastPkts : DWORD;
dwInNUCastPkts : DWORD;
dwInDiscards : DWORD;
dwInErrors : DWORD;
dwInUnknownProtos : DWORD;
dwOutOctets : DWORD;
dwOutUCastPkts : DWORD;
dwOutNUCastPkts : DWORD;
dwOutDiscards : DWORD;
dwOutErrors : DWORD;
dwOutQLen : DWORD;
dwDescrLen : DWORD;
bDescr : array[0..255] of Char;
end;
var
mibIfTable:PMibIfTable;
error : DWORD;
bufflen : DWORD;
p : pointer;
i:integer;
begin
bufflen:=sizeof(mibIfTable^);
new(mibIfTable);
p:=MibIfTAble;
error:=GetIfTable(mibIftable,@bufflen,false);
if error<>No_error then begin
showmessage('Произошла ошибка');
exit;
for i:=0 to mibiftable.dwnumEntries-1 do
memo1.lines.add(GetStrMac(TmacAddress(mibIfTable.table[i].bPhysAddr),mibIfTable.table[i].dwPhysAddrLen));
end;
function TForm1.GetStrMac(Mac: TMacAddress; size: integer): string;
var
i:integer;
begin
if size = 0 then
begin
result:='00-00-00-00-00-00';
Exit;
end;
Result:='';
for i:=1 to size do
Result:=Result+IntToHex(Mac[i], 2)+'-';
Delete(Result, length(Result), 1);
end;
Admin: Пользуемся тегами!
|