![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
МАС адрес [D6, Win2k]
Alibaba © (2002-05-27 10:43:00)Всем привет!
Скажите МАСТЕРА, как определить МАС адрес своей сетевой карты?
Crazytemo (2002-05-27 14:42:00) [1]no tolko v win98, win2000 ne prboval
Crazytemo (2002-05-27 14:39:00) [2]vot kod po pravde govria ia sam eto ne delal no rabotaet otlichno
function TForm1.MGetMACAddress(LanaNum: Byte): string;
var
type
PMACAddress = ^TMACAddress;
TMACAddress = array[0..5] of Byte;
AdapterStatus: PAdapterStatus;
StatNCB: PNCB;
Status:Byte;
MACAddress: PMACAddress;
begin
New(StatNCB);
ZeroMemory(StatNCB, SizeOf(TNCB));
StatNCB.ncb_length := SizeOf(TAdapterStatus) + 255 * SizeOf(TNameBuffer);
GetMem(AdapterStatus, StatNCB.ncb_length);
try
with StatNCB^ do
begin
New(MacAddress);
ZeroMemory(MACAddress, SizeOf(TMACAddress));
ncb_buffer := PChar(AdapterStatus);
ncb_callname := "* " + #0;
ncb_lana_num := Char(LanaNum);
ncb_command := Char(NCBASTAT);
NetBios(StatNCB);
Status := Byte(ncb_cmd_cplt);
if Status = NRC_GOODRET then
MoveMemory(MACAddress, AdapterStatus, SizeOf(TMACAddress));
end;
finally
FreeMem(AdapterStatus);
Dispose(StatNCB);
end;
Result := Format("%2.2x-%2.2x-%2.2x-%2.2x-%2.2x-%2.2x",
[MACAddress[0], MACAddress[1], MACAddress[2],
MACAddress[3], MACAddress[4], MACAddress[5]]);
end;