Remote MAC address
Jeg har 2 PC\'ere i et netværk.PC1 og PC2
Jeg vil nu gerne have at PC1 kan finde MAC adressen til PC2 via dens navn f.eks:
MACAddress:=GetMacAddress(\'PC2\');
Jeg ved det er muligt via netbios (nb30.pas) og har haft det til at virke, men ramte i et par problemer på win2k da denne åbentbart ikke understøtter IBM netbios 3.0
Jeg har også, efter at min win98 maskine har været tilsluttet et andet netwærk, fået problemer på denne.
Det skal helst kunne virke på win9x/NT/2000 hvor netværks protokollen er TCP/IP med DHCP.
Jeg ved godt det er meget at spørge om så hvis der skal flere point på bordet så sig til.
Til sidst lige den program stump jeg har brugt indtil nu (virker ikke til win2k):
function GetMACAddress(PCName: String; var MAC: array of char): char;
var
Ncb: TNCB;
PAst: PASTAT;
tmp: string;
begin
tmp := UpperCase(PCName);
FillMemory(@Ncb, Sizeof(TNCB), 0);
Ncb.ncb_command := Char(NCBRESET);
Result := NetBios(@Ncb);
if Result<>#0 then
Exit;
FillChar(NCB.ncb_callname[0], 16, \' \');
Move(tmp[1], NCB.ncb_callname[0], Length(tmp));
NCB.ncb_command := Char(NCBASTAT);
NCB.ncb_lana_num := #0;
NCB.ncb_length := SizeOf(ASTAT);
GetMem(PAst, NCB.ncb_length);
NCB.ncb_buffer := PChar(PAst);
Result := NetBios(@Ncb);
Move(PAst^.adapt.adapter_address[0], MAC[0], 6);
FreeMem(PAst);
end;
NaZaq
