|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Delphi 7 Как программно узнать мак-адрес?
Люди хелллп - искал в инете не нашел....... (нужно очень срочно....)
Задача: "Как в 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 тебе что не подходит?
|