View Full Version : طریقه دستیابی به mac Address در حالت local با دلفی
  
mallah
جمعه 20 آذر 1388, 14:25 عصر
وقتی شبکه قطعه چطور می تونم با دلفی macAddress رو پیدا کنم؟ وقتی از  net bios استفاده می کنم 0 بر می گردونه.:متفکر:
Felony
جمعه 20 آذر 1388, 14:34 عصر
function CoCreateGuid(var guid: TGUID): HResult; stdcall; far external 'ole32.dll';
 
function Get_MACAddress: string;
var
  g: TGUID;
  i: Byte;
begin
  Result := '';
  CoCreateGUID(g);
  for i := 2 to 7 do
    Result := Result + IntToHex(g.D4[i], 2);
end;
FiACKER
جمعه 20 آذر 1388, 17:38 عصر
مثله اینکه مکه  واقعی کارت شبکه رو بر نمی گردونه !
من از وایرلس استفاده می کنم و فکر می کنم یه مک هست که ماله کارته شبکه ام هست و یکی هم ماله رادیوم هست و هر دوتا رو هم می دونم. اما اینی که برنامه بالا بر می گردونه هیچ کدوم از اونا نیست.
Felony
جمعه 20 آذر 1388, 17:52 عصر
این رو تست کنید :
Uses NB30;
function GetAdapterInfo(Lana: Char): String;
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 := 'mac not found';
   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 := 'mac not found';
   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: string;
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
   Result := 'mac not found';
end;
mallah
پنج شنبه 26 آذر 1388, 13:22 عصر
فقط وقتی که به شبکه وصل هستم می تونم از NB30 استفاده کنم و mac address رو پیدا کنم. ولی وقتی شبکه قطع باشه تابع صفر برمی گردونه. لطفاً منو راهنمایی کنید. خیلی فوریه!!!
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.