![]() |
|
إيجاد الرقم التسلسلي لكارت الشبكة adressMac - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : إيجاد الرقم التسلسلي لكارت الشبكة adressMac (/showthread.php?tid=8749) |
إيجاد الرقم التسلسلي لكارت الشبكة adressMac - أبو معاذ - 02-07-2017 السلام عليكم ورحمة الله وبركاته ، للحصول على الرقم التسلسلي لكارت الشبكة delphi adresse mac، استعمل الكود التالي : كود : 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;لكن المشكلة إذا كان كابل الشبكة غير موصول ، فلا يمكن حين إذن الحصول على الرقم التستسلي. هل من فكرة بارك الله فيكم؟ RE: إيجاد الرقم التسلسلي لكارت الشبكة adressMac - لؤي - 04-07-2017 السلام عليكم هناك جدول في جهاز التوجيه Switch يحوي على IP مع MAC المشكلة أن يحوي على بيانات في الزمن الحقيقي أي لما تقوم بنزع الكابل تختفي البانات ممكن تعمل سكريبت يقوم بعمل نسخ البيانات و من ثم تأخذها بغض النظر غن كانت الاجهزة موصولة بال Switch أم لا. PHP كود : Internet 192.168.200.3 3 0007.dddd.abc2 ARPA Vlan4هناك منفذ ILO في الخوادم من نوع HP حتى ولو كان الخادم في حالة توقف ممكن أن تلج إليه.. RE: إيجاد الرقم التسلسلي لكارت الشبكة adressMac - أبو معاذ - 05-07-2017 السلام عليكم ورحمة الله وبركاته ، شكرا أخي لؤي على متابعة ، لكن طلبي هو : عل بالإمكان قراءة رقم كروت الشبكة في حالة عدم اتصال الجهاز بأي شبكة ، بمعنى disconnected. حلت المشكلة ولله الحمد - أبو معاذ - 06-07-2017 السلام عليكم ورحمة الله وبركاته ، أظنني بعد البحث وجدت الحل لمن يهمه الأمر هذا هو الكود. كود : //-----------------------------------------------------------------------------------------------------
// This code was generated by the Wmi Delphi Code Creator (WDCC) Version 1.9.9.350
// http://code.google.com/p/wmi-delphi-code-creator/
// Blog http://theroadtodelphi.wordpress.com/wmi-delphi-code-creator/
// Author Rodrigo Ruz V. (RRUZ) Copyright (C) 2011-2015
//-----------------------------------------------------------------------------------------------------
//
// LIABILITY DISCLAIMER
// THIS GENERATED CODE IS DISTRIBUTED "AS IS". NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED.
// YOU USE IT AT YOUR OWN RISK. THE AUTHOR NOT WILL BE LIABLE FOR DATA LOSS,
// DAMAGES AND LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING OR MISUSING THIS CODE.
//
//----------------------------------------------------------------------------------------------------
program GetWMI_Info;
{$APPTYPE CONSOLE}
uses
SysUtils,
ActiveX,
ComObj,
Variants;
// La classe Win32_NetworkAdapter représente une carte réseau sur un système Win32.
procedure GetWin32_NetworkAdapterInfo;
const
WbemUser ='';
WbemPassword ='';
WbemComputer ='localhost';
wbemFlagForwardOnly = $00000020;
var
FSWbemLocator : OLEVariant;
FWMIService : OLEVariant;
FWbemObjectSet: OLEVariant;
FWbemObject : OLEVariant;
oEnum : IEnumvariant;
iValue : LongWord;
begin;
FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword);
FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapter WHERE MACAddress IS NOT NULL','WQL',wbemFlagForwardOnly);
oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
while oEnum.Next(1, FWbemObject, iValue) = 0 do
begin
Writeln(Format('Caption %s',[String(FWbemObject.Caption)]));// String
Writeln(Format('MACAddress %s',[String(FWbemObject.MACAddress)]));// String
Writeln('');
FWbemObject:=Unassigned;
end;
end;
begin
try
CoInitialize(nil);
try
GetWin32_NetworkAdapterInfo;
finally
CoUninitialize;
end;
except
on E:EOleException do
Writeln(Format('EOleException %s %x', [E.Message,E.ErrorCode]));
on E:Exception do
Writeln(E.Classname, ':', E.Message);
end;
Writeln('Press Enter to exit');
Readln;
end.RE: إيجاد الرقم التسلسلي لكارت الشبكة adressMac - kachwahed - 14-07-2017 وعليكم السلامة ورحمة الله وبركاته، هل يمكن قراءة مخرجات تعليمة arp ؟ شيء مثل: كود : arp -a |