سلام.میدونم در مورد این موضوع تاپیک زیاد هست ولی هر چه قدر جستجو کردم مطلبی که بتونه کمکم کنه پیدا نکردم لطفا منا راهنمایی کنید.نیاز فوری به کمک دارم.چطوری میتونم مک مودم رو در دلفی بدست بیارم؟
Printable View
سلام.میدونم در مورد این موضوع تاپیک زیاد هست ولی هر چه قدر جستجو کردم مطلبی که بتونه کمکم کنه پیدا نکردم لطفا منا راهنمایی کنید.نیاز فوری به کمک دارم.چطوری میتونم مک مودم رو در دلفی بدست بیارم؟
uses NB30;
function GetMACAdress: string;
var
NCB: PNCB;
Adapter: PAdapterStatus;
URetCode: PChar;
RetCode: char;
I: integer;
Lenum: PlanaEnum;
_SystemID: string;
TMPSTR: string;
begin
Result := '';
_SystemID := '';
Getmem(NCB, SizeOf(TNCB));
Fillchar(NCB^, SizeOf(TNCB), 0);
Getmem(Lenum, SizeOf(TLanaEnum));
Fillchar(Lenum^, SizeOf(TLanaEnum), 0);
Getmem(Adapter, SizeOf(TAdapterStatus));
Fillchar(Adapter^, SizeOf(TAdapterStatus), 0);
Lenum.Length := chr(0);
NCB.ncb_command := chr(NCBENUM);
NCB.ncb_buffer := Pointer(Lenum);
NCB.ncb_length := SizeOf(Lenum);
RetCode := Netbios(NCB);
i := 0;
repeat
Fillchar(NCB^, SizeOf(TNCB), 0);
Ncb.ncb_command := chr(NCBRESET);
Ncb.ncb_lana_num := lenum.lana[I];
RetCode := Netbios(Ncb);
Fillchar(NCB^, SizeOf(TNCB), 0);
Ncb.ncb_command := chr(NCBASTAT);
Ncb.ncb_lana_num := lenum.lana[I];
// Must be 16
Ncb.ncb_callname := '* ';
Ncb.ncb_buffer := Pointer(Adapter);
Ncb.ncb_length := SizeOf(TAdapterStatus);
RetCode := Netbios(Ncb);
//---- calc _systemId from mac-address[2-5] XOR mac-address[1]...
if (RetCode = chr(0)) or (RetCode = chr(6)) then
begin
_SystemId := IntToHex(Ord(Adapter.adapter_address[0]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[1]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[2]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[3]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[4]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[5]), 2);
end;
Inc(i);
until (I >= Ord(Lenum.Length)) or (_SystemID <> '00-00-00-00-00-00');
FreeMem(NCB);
FreeMem(Adapter);
FreeMem(Lenum);
GetMacAdress := _SystemID;
end;
دوست عزیز آقای شهریار ایرانپور مرسی از راهنماییت ولی این کدی که نوشتی کار نمیکونه هیچ مقداری رو برای متغیر SystemID_ نمیتونه بدست بیاره یا در واقع نمیتونه mac مودم و پیدا کنه. اگه راه حل دیگری داری یا راهنمایی درباره این کد میتونی بکنی ممنون میشم.
مگه مودم هم Mac Address داره با دستور
getmac
هم هیچ Mac Address ی برای مودم نشون نمیده فقط کارت شبکه ها و