Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

[Dúvida] Scanner da erro =x

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Delphi [Dúvida] Scanner da erro =x

    Bem...

    Estou fazendo um utilítário com muitas funções...

    uma delas é o scaneamento de portas...

    bem... o problema é que meu scanner está retornando erro e u não sei o porque... Oo

    source do scanner:

    Código:
    procedure TForm5.Button1Click(Sender: TObject);
    var
    x : integer;
    begin
    clientsocket1.Host := edit1.Text;
    for x := strtoint(edit2.Text) to strtoint(edit3.Text) do
    begin
    clientsocket1.Port := x;
    clientsocket1.Active := true;
    end;
    end;
    
    
    
    procedure TForm5.ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
    memo1.Lines.Add('IP: '+clientsocket1.host+' está com a porta '+inttostr(clientsocket1.port)+' aberta.');
    clientsocket1.Active := false;
    end;
    
    
    procedure TForm5.ClientSocket1Disconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
    clientsocket1.Active := false;
    end;
    
    procedure TForm5.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    begin
    memo1.Lines.Add('Erro ao tentar scanear a porta '+inttostr(clientsocket1.port)+' do IP: '+clientsocket1.host+' .');
    clientsocket1.Active := false;
    end;

    Erro:

    Att,

    [A]ntharaz



    sigpic

  • Font Size
    #2
    Se tivesse o botão de editar facilitaria para arrumar as imagens ¬¬





    Att,

    [A]ntharaz



    sigpic

    Comment


    • Font Size
      #3
      Problema: Vc está tentando estabelecer conexão com uma porta que não está aberta, por isso o ClientSocket retorna o erro, ele tenta conectar-se com um ServerSocket aberto nessa porta e não encontrata retornando o erro referido, isso não impede que ele seja utilizado pra isso, mas tem componentes melhor que ele.

      Solução: Bom pra fazer o que vc quer o mais indicado seria vc criar o socket maualmente só com essa função o que agilizaria bastante o processo e seria mais rápido, mas como acho que vc vai preferir usar um componente pronto eu te recomendo o TCPClient, ele tem rotinas bem parecidas com o clientsocket mas é bem melhor de manipular pra fazer um scan de portas.

      Rotina pra fazer um scan usando o TCPClient:

      Código PHP:
      //declare: IdTcpClient e Sockets na uses
      Procedure Scan(Porta IntegerHost String);
      var
        
      Client TTcpClient;
      Begin
        Client 
      := TTcpClient.Create(nil);  //crio o componente em tempo de execução para poder ser utilizado dentro de threads
        
      Try
          
      Client.RemoteHost := Host;
          
      CLient.RemotePort := IntToStr(Porta);
          
      Client.Connect;
          If 
      Client.Connected then
            Form1
      .Memo1.Lines.Add('A Porta ['IntToStr(Porta)+ '] está aberta.');
          
      Client.Disconnect;
        
      Except
          On E 
      Exception do Begin Form1.Memo1.Lines.Add('Erro: ' E.Message); End;
        
      End;
        
      Client.Free;  //libera o componente
      End
      Exemplo de uso:
      Código PHP:
      procedure TForm1.Button1Click(SenderTObject);
      var
      integer;
      begin
        
      for := 0 to 100 do
          
      begin
            Scan
      (x'127.0.0.1');
            
      Application.ProcessMessages;
          
      end;
      end
      Recomendo vc usar essa rotina dentro de threads pra ganhar velocidade e não travar o app.
      Qualquer dúvida pede aí
      []s
      <<< ENGINEERING CODERZ - HACKING PROGRAMMING GROUP >>>
      msn/mail: azurus21@gmail.com

      Comment


      • Font Size
        #4
        CLient.RemotePort := IntToStr(Porta);
        Eu sei que se não botar o inttostr não compila, mas pela lógica não seria CLient.RemotePort := Porta; já que CLient.RemotePort recebe sempre um valor inteiro?
        Att,

        [A]ntharaz



        sigpic

        Comment


        • Font Size
          #5
          Eita cara...

          meu pc ta muito ruim msm...

          Se tá lerdando um pouco já pra iniciar o dephi 2010 é pq ta mto ruim -.-'

          Acho que vou trocar o pc rsrs
          Att,

          [A]ntharaz



          sigpic

          Comment


          • Font Size
            #6
            Na verdade o TcpClient.Port recebe umas string e não um valor inteiro, por isso eu uso o intostr ^^
            []s
            <<< ENGINEERING CODERZ - HACKING PROGRAMMING GROUP >>>
            msn/mail: azurus21@gmail.com

            Comment


            • Font Size
              #7
              Hum, delphi 2010 vc baixou do site oficial e depois usou crack?]
              vlws

              Comment


              • Font Size
                #8
                sim Dork... xD
                Att,

                [A]ntharaz



                sigpic

                Comment


                • Font Size
                  #9
                  Aff, se tivesse o edit podia apenas editar né... -.-'

                  Azurus... é que eu estava acostumado com o clientsocket que estava usando antes... a port dele só recebe inteiro.

                  "/
                  Att,

                  [A]ntharaz



                  sigpic

                  Comment


                  • Font Size
                    #10
                    Sim o ClientSocket só acc inteiro mesmo, nunca entendi pq o TcpClient estar usando string sendo que a porta sempre será um número inteiro
                    Mas é isso aew
                    []s
                    <<< ENGINEERING CODERZ - HACKING PROGRAMMING GROUP >>>
                    msn/mail: azurus21@gmail.com

                    Comment

                    X
                    Working...
                    X