(texto antigo, 2009 por ae)

Decidi mexer um pouco nos códigos antigos e meu escaneador de portas (código fonte aqui) foi o escolhido, tinha subido ele pro repositório bem sujo e resolvi atualizá-lo, agora o portscan por IP consegue fazer milhares de requisições em paralelo em apenas poucos segundos e te fornece todas as portas abertas. Quem quiser dar uma olhada melhor basta baixar o fonte e compilar conforme o final do post. Veja alguns exemplos do ‘hardscan’ em uso:

$ ./hardscan
uso: ./hardscan IP [1-65535]

Onde, IP é o endereço do protocolo de internet e o segundo argumento um range de portas.

$ ./hardscan 77.75.12.178 1-555
scanning ports on host '77.75.12.178'..
   22, esta aberta mestre! :]
   80, esta aberta mestre! :]
  554, esta aberta mestre! :]

$ ./hardscan 200.200.45.98 20-22
scanning ports on host '200.200.45.98'..
   21, esta aberta mestre! :]
   22, esta aberta mestre! :]

Baixe o fonte e compile usando o ‘gcc’:

$ gcc -O2 -lpthread -o hardscan hardscan.c
$ ./hardscan IP portaIncio-portaFim