Oppure

Loading
17/02/10 14:04
Phi
Dovrei capire come ricavare l'indirizzo di un computer sapendone il nome nella LAN.
Ho per esempio il nome //PC01 e voglio ottenere l'IP XXX.XXX.XXX.XXX
Come faccio??
aaa
17/02/10 14:23
fabriziorocca
Ultima modifica effettuata da fabriziorocca 17/02/10 14:31
aaa
23/02/10 16:28
Phi
Ti sei accorto che non hai scritto niente???
aaa
23/02/10 18:37
fabriziorocca
Già, ma siccome avevo scritto una cavolata ho preferito levarla
aaa
19/03/10 17:59
Phi
Grazie Mille.
Comunque ho trovato la soluzione da solo.

uses windows, sockets, winsock;

type
PHostEntry = PHostEnt;
PAddr = ^sockets.in_addr;

var
Host:PHostEntry;
FAddresses : Paddr;
FHostAddress : sockets.in_addr;

Procedure SaveHostEntry(Entry : Pointer);
Var
I : Integer;
FAddressCount : word;
begin
With PHostEntry(Entry)^ do
begin
FAddressCount:=0;
While H_Addr[FAddressCount]<>Nil do
Inc(FAddressCount);
If FAddressCount>0 then
begin
GetMem(FAddresses,FAddressCount*SizeOf(in_addr));
For I:=0 to FAddressCount-1 do begin
FAddresses[I].s_addr:=NetToHost(PAddr(H_Addr[I])^.s_addr);
end;
FHostAddress:=FAddresses[0];
end;
end;
end;


BEGIN
host := gethostbyname(pchar('PC01'));
{Se l'indirizzo di rete è //PC01, praticamente si toglie "//"}
writeln(memsize(host));
savehostentry(host);
writeln('Addr : ',FHostAddress.s_addr);
with FHostAddress do writeln('IP : ',s_bytes[4],'.',s_bytes[3],'.',s_bytes[2],'.',s_bytes[1]);
readln;
END.
aaa