Показать сообщение отдельно
  #2  
Старый 14.04.2008, 22:52
Ozerich Ozerich вне форума
Новичок
 
Регистрация: 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: Пользуемся тегами!
Ответить с цитированием