import java.net.Socket;
import javax.swing.JOptionPane;
public class PortScanTCP {
public static void main(String args[]) {
String server = JOptionPane.showInputDialog(null,"Digite o endereço do servidor a ser verificado.", "127.0.0.1");
String limit = JOptionPane.showInputDialog(null,"Digite a menor porta - e a última a serem percorridade(com - entre elas)","80-1024");
String[] port = limit.split("-");
int min = Integer.parseInt(port[0]);
int max = Integer.parseInt(port[1]);
StringBuffer portasEncontradas = new StringBuffer();
for (int porta = min; porta <= max; porta++) {
try {
System.out.print("\rVerificando porta " + porta);
Socket s = new Socket(server, porta);
s.setTcpNoDelay(true);
s.setSoTimeout(0);
portasEncontradas.append(porta + "\n");
s.close();
} catch (Exception ex) {
}
}
System.out.println("\nPortas TCP encontradas\n" + portasEncontradas.toString());
}
}
Java PortScan
H
1 Resposta
P
Pelo que vi este código deve ser extremamente lento quando há um firewall que bloqueia conexões na rota para o endereço a ser testado.
Como o setSoTimeout() está depois do new Socket(host,port), não terá efeito sobre o timout de conexão. Dependendo da configuração do seu ambiente, este timeout pode ser da ordem de minutos, o que torna um scan tarefa de horas, no pior caso.
Sugiro usar o construtor sem argumentos, setar o timeout e, depois disto, chamar o método connect.
Criado 15 de novembro de 2008
Ultima resposta 18 de nov. de 2008
Respostas 1
Participantes 2
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo Engenharia de Prompt para Devs: Um guia para aprender a... Por Ricardo Pupo Larguesa — Casa do Codigo