PDA

View Full Version : به دست آوردن mac مودم



Mo1659
دوشنبه 29 بهمن 1386, 05:56 صبح
سلام.میدونم در مورد این موضوع تاپیک زیاد هست ولی هر چه قدر جستجو کردم مطلبی که بتونه کمکم کنه پیدا نکردم لطفا منا راهنمایی کنید.نیاز فوری به کمک دارم.چطوری میتونم مک مودم رو در دلفی بدست بیارم؟

شهریار بهمن پور
دوشنبه 29 بهمن 1386, 17:48 عصر
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;

Mo1659
سه شنبه 30 بهمن 1386, 02:05 صبح
دوست عزیز آقای شهریار ایرانپور مرسی از راهنماییت ولی این کدی که نوشتی کار نمیکونه هیچ مقداری رو برای متغیر SystemID_ نمیتونه بدست بیاره یا در واقع نمیتونه mac مودم و پیدا کنه. اگه راه حل دیگری داری یا راهنمایی درباره این کد میتونی بکنی ممنون میشم.

ICEMAN
سه شنبه 30 بهمن 1386, 14:01 عصر
مگه مودم هم Mac Address داره با دستور


getmac

هم هیچ Mac Address ی برای مودم نشون نمیده فقط کارت شبکه ها و