Descobrir IP

Delphi

17/03/2004

Tenho um servidor e qdo uma maquina fosse acessa-lo gostaria de descobrir o ip da maquina q está tentando acessar o servidor.. gostaria de saber se tem como fazer isso? alguem tem algum exemplo q possa me passar?


Feliperodrigues

Feliperodrigues

Curtidas 0

Respostas

Fabio.hc

Fabio.hc

17/03/2004

Tente assim:

uses
  WinSock;

{$R *.dfm}

procedure TForm1.PegarIP();
type
   TAPInAddr = Array[0..100] of PInAddr;
   PAPInAddr = ^TAPInAddr;
var
   WSAData: TWSAData;
   Host, nHost: String;
   HostEntPtr: PHostEnt;
   pptr: PAPInAddr;
   i: Integer;
begin
      WSAStartUp( $101, WSAData );
      try

      Host := Trim( ´Nome do Servidor´ );

      // Get host entry by hostname
      HostEntPtr := GetHostByName( PChar( Host ) );
      if HostEntPtr = NIL then
         raise Exception.Create( ´WinSock error: ´ + IntToStr( WSAGetLastError() ) );

      // Make list of host IPs
      pptr := PAPInAddr( HostEntPtr^.h_addr_list );
      i := 0;
      while pptr^[i] <> NIL do
         begin
         nHost:=nHost+( inet_ntoa( pptr^[i]^ ) );
         Inc( i );
         end;

      except
         on E: Exception do
         begin
         Beep();
         ShowMessage( E.Message );
         end;
      end;

      WSACleanUp();

end;

end.



GOSTEI 0
Nildo

Nildo

17/03/2004

Hum... Nao eh bem isso que ele quer Fabio...
Bom, primeiramente voce vai ter que Hookar a funcao Accept atravez de um programa que voce tem que executar no Servidor. Nessa funcao Accept vai vir como parametro uma variavel TSocket, que a partir dela voce consegue o IP de quem tenta se conectar. Para Hookar funcoes voce pode usar o MadCollection: http://www.madshi.net/
Dae voce olha uns exemplos que tem na pasta Demo, que mostra como Hookar funcoes.


GOSTEI 0
POSTAR