![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Люди хелллп - искал в инете не нашел....... (нужно очень срочно....)
Задача: "Как в Delphi 7 программно узнать мак-адрес локальной(своей) сетевой карты и записать в МЕМО?" Я чайник, прошу, если не сложно написать код на буттон клик и если что в Uses нужно дописать, или какие компоненты применить, - описать подобно... За ранее благодарен, всем, кто ответит! П.с. темы такой в инете не нашел(искал долго), тема актуальна.... |
|
#2
|
|||
|
|||
|
Код:
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: Пользуемся тегами! Последний раз редактировалось Admin, 15.04.2008 в 10:31. |
|
#3
|
|||
|
|||
|
Пасибки, за ответ, только вот проблемка, я же написал, что я чайник.... Я кроме бутонн кликов ничего не знаю..... И не особо понял, что куда раскидывать в этом коде... Можно весь код программы тогда? И пару коментаиев, если можно?
|
|
#4
|
|||
|
|||
|
Давай завтра после обеда(когда со школы приду).а то я сча сплю(с мобилы сижу)
|
|
#5
|
|||
|
|||
|
Буду ждать )
|
|
#6
|
||||
|
||||
|
а это infofromip.zip тебе что не подходит?
|