حالشو ببر :
library MacAddress;
uses
SysUtils,
Classes,
NB30,
Dialogs,
Windows;
Function GetAdapterInfo(Lana: Char): ShortString;
Var
Adapter: TAdapterStatus;
NCB: TNCB;
Begin
FillChar(NCB, SizeOf(NCB), 0);
NCB.ncb_command := Char(NCBRESET);
NCB.ncb_lana_num := Lana;
IF Netbios(@NCB) <> Char(NRC_GOODRET) Then
Begin
Result := 'Error';
MessageDlg('Error',mtError,[mbok],0);
Exit;
End;
FillChar(NCB, SizeOf(NCB), 0);
NCB.ncb_command := Char(NCBASTAT);
NCB.ncb_lana_num := Lana;
NCB.ncb_callname := '*';
FillChar(Adapter, SizeOf(Adapter), 0);
NCB.ncb_buffer := @Adapter;
NCB.ncb_length := SizeOf(Adapter);
IF Netbios(@NCB) <> Char(NRC_GOODRET) then
Begin
Result := 'Error';
MessageDlg('Error',mtError,[mbok],0);
Exit;
End;
Result :=
IntToHex(Byte(Adapter.adapter_address[0]), 2) + '-' +
IntToHex(Byte(Adapter.adapter_address[1]), 2) + '-' +
IntToHex(Byte(Adapter.adapter_address[2]), 2) + '-' +
IntToHex(Byte(Adapter.adapter_address[3]), 2) + '-' +
IntToHex(Byte(Adapter.adapter_address[4]), 2) + '-' +
IntToHex(Byte(Adapter.adapter_address[5]), 2);
End;
Function GetMACAddress: ShortString;
Var
AdapterList: TLanaEnum;
NCB: TNCB;
Begin
FillChar(NCB, SizeOf(NCB), 0);
NCB.ncb_command := Char(NCBENUM);
NCB.ncb_buffer := @AdapterList;
NCB.ncb_length := SizeOf(AdapterList);
Netbios(@NCB);
IF Byte(AdapterList.length) > 0 then
Result := GetAdapterInfo(AdapterList.lana[0])
Else
Begin
Result := 'Error';
MessageDlg('Error',mtError,[mbok],0);
End;
End;
Exports
GetMACAddress; //Exports Function
begin
end.