Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - IP di computer su LAN
Forum - Pascal - IP di computer su LAN

Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Segnala al moderatore
Postato alle 15:04
Mercoledì, 17/02/2010
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??

PM Quote
Avatar
fabriziorocca (Normal User)
Guru


Messaggi: 1162
Iscritto: 22/03/2009

Segnala al moderatore
Postato alle 15:23
Mercoledì, 17/02/2010

Ultima modifica effettuata da fabriziorocca il 17/02/2010 alle 15:31
PM Quote
Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Segnala al moderatore
Postato alle 17:28
Martedì, 23/02/2010
Ti sei accorto che non hai scritto niente???

PM Quote
Avatar
fabriziorocca (Normal User)
Guru


Messaggi: 1162
Iscritto: 22/03/2009

Segnala al moderatore
Postato alle 19:37
Martedì, 23/02/2010
Già, ma siccome avevo scritto una cavolata ho preferito levarla

PM Quote
Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Segnala al moderatore
Postato alle 18:59
Venerdì, 19/03/2010
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.

PM Quote