Scanner en gnu/linux

Iniciado por hanx, 8 Enero 2011, 01:39 AM

0 Miembros y 1 Visitante están viendo este tema.

hanx


#include <stdio.h>

#include <string>

using namespace std;

#include "PracticalSocket.h"



int main(int argc, char **argv)

{

char help[]="\n usage: address start end\n";

char temp[255];

string ip;

int start;

int end;

int i=0;

TCPSocket *tcs;

switch(argc)

{

case 4:

//argv[1] ip to scan, argv[2] is the start port, argv[3] is the end port

ip=argv[1];

start=atoi(argv[2]);

end=atoi(argv[3]);

for(i=start;i<=end;i++)

{

try

{

sprintf(temp,"testing %i\n",i);

fputs(temp,stdout);

tcs = new TCPSocket;

//try and connect to the port...if connection fails an exception is thrown

tcs->connect(ip,i);

sprintf(temp,"open port at %i\n",i);

fputs(temp,stdout);

//if we succeeded in connecting to a port

delete tcs;

}

catch(SocketException ex)

{

continue;//run a continue to scan the next port

}

}

break;

default:

printf(help);

break;

}

return 0;

}


leogtz

Usas "using namespace std" dando a entender que es C++, pero usas librerias de C.

¿Por qué dejar una línea en blanco entre líneas?
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

hanx

#2
Debes saber que la libreria PracticalSocket.h si es c++, y los espacios es de la misma pagina, la cargo asi....

EvilGoblin

ahora, muestras el codigo "mascara" cuando en realidad el codigo importante seria el connect(ip,puerto);

no entiendo, estas preguntando algo o quieres saber algo???? de que va esto?
Experimental Serial Lain [Linux User]

Garfield07

#4
No se si va, pero de nada

#include <time.h> //Hora
#include <stdio.h> //Funciones basicas entrada/salida
#include <string.h> //StrCmp
#include <stdlib.h> //Exit y otras
#include <arpa/inet.h> //struct sockaddr_in
#include <sys/socket.h> //Socket, Connect...

struct sockaddr_in host; //Declaraciones
int sockfd;
int cont;
int k = 0;


int main (int argc, char *argv [])
{
printf ("ScanS 1.0 - By Sagrini (2010)\n"); //Esto escribira la presentacion.
if (argc != 2)
{
printf ("Uso: %s <target_ip>\n\n", argv [0]);
return 1;
}
host.sin_addr.s_addr=inet_addr (argv [1]);
host.sin_family=AF_INET;
memset (host.sin_zero, 0, 8);
for (cont = 1; cont <= 65535 cont ++) //Modif :P
{

if ((sockfd=socket (2, 1, 0))==1)
{
printf ("Error abriendo socket...\n\n");
return 1;
}

host.sin_port = htons (cont);
if (connect (sockfd, (struct sockaddr*)&host, sizeof (host)) != -1)
{
printf ("Port %d open\n", cont);
k++;
}
// else printf ("Port %d close\n", cont);
close (sockfd);
}
if (k == 0) printf ("All ports closed...\n");
else printf ("%d port(s) open(s)...\n", k);
return 0;
}



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo