Hálózati gépek MAC-címe IP alapján

Hálózati gépek MAC-címe IP alapján
2012-12-16T04:17:30+01:00
2012-12-16T14:19:05+01:00
2022-11-27T17:20:34+01:00
Zeusz1967
Sziasztok!

Mivel én nagyon sokat keresgéltem a választ, most, hogy sikerült összerakni, gondoltam közzéteszem.

W8 és Delphi XE alatt ketyeg.

(Az átdolgozás ezen forráskód alapján készült)


unit MAC_Teszt; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Winsock; const iphlpapilib = 'iphlpapi.dll'; type TForm3 = class(TForm) Label1: TLabel; Button1: TButton; Edit1: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; function SendArp(ipaddr:ulong; temp:dword; ulmacaddr:pointer; ulmacaddrleng:pointer) : DWord; StdCall; var Form3: TForm3; implementation {$R *.dfm} function SendARP; external iphlpapilib name 'SendARP'; //**************************************************** function GetMacAddr(const IPAddress: AnsiString): string; //**************************************************** var Qwi:Integer; Vte:String; lDestIP:ulong; lMacAddr:array[0..5] of Byte; lPhyAddrLen:ulong; begin for qwi := 0 to 5 do lMacAddr[Qwi]:=0; lDestIP:=inet_addr(PAnsiChar(IPAddress)); lPhyAddrLen:=length(lMacAddr); sendarp(lDestIP,0,@lMacAddr,@lPhyAddrLen); Vte:=''; for qwi := 0 to 5 do Begin if Qwi>0 then Vte:=Vte+'-'; Vte:=Vte+IntToHex(lMacAddr[Qwi],2); End; Result:=Vte; //ShowMessage(IPAddress+#10+Vte); end; //**************************************************** procedure TForm3.Button1Click(Sender: TObject); //**************************************************** begin label1.caption:=GetMacAddr(edit1.text); end; end.

Használjátok egészséggel!

(Modi! Nullázd lécci a pontot!)
Mutasd a teljes hozzászólást!
Majd lesznek a témában még kódjaim. :)
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd