Red de conocimiento informático - Computadora portátil - Gane 100 puntos por escribir código de escaneo de puertos de Linux en C

Gane 100 puntos por escribir código de escaneo de puertos de Linux en C

programa fuente de escaneo de puertos tcp udp de Linux

#include lt; sys/socket.hgt

#include lt; lt;arpa/inet.hgt;

#include lt;unistd.hgt;

#include lt;errno.hgt;

#include lt;unistd .hgt;

#include lt;errno.hgt;

#include lt;netdb.hgt;

#include lt;stdio.hgt;

p>

#include lt;string.hgt;

#include lt;string.hgt;

#include lt;arpa/internet.hgt;

#include lt;libxml/parser.hgt;

#include lt;libxml/tree.hgt;

#define VERDADERO 1

#define FALSO 0

#define UDP "UDP"

#define TCP "TCP"

#define tcp "tcp"

#define udp "udp"

typedef struct _GsSockStru{

int fd;

int len;

struct sockaddr_in addr;

}GsSockStru;

static int tcptest(char ip[32], char puerto[20]);

static int udptest(char ip[32] , puerto char[20] ]);

void sig_alrm( int signo

static GsSockStru test_sock

int

main; ( int argc, char* * argv)

{

cadena de caracteres[64]

puerto de caracteres[20]; char pro[20];

char ip[32];

int res

int i = 0

int k; = 0;

if( argcgt; 2 || argclt; 2 )

{

printf("卙四暟涓嶆? ¿Confirmar? -1\n");

return ( -1 );

}

strcpy( cadena, argv[1]);

while( *string )

{

if( string[i] == ':' )

break

pro[k] = cadena[i];

k

i

>

}

pro[k] = '\0';

i

k = 0

mientras ( *cadena )

{

> if( cadena[i] == ':

romper;

ip[k] = cadena[i];

k

i;

}

ip[k] = '\0';

i;

k=0;

p> mientras( *cadena )

{

si( cadena[i] == '\0')

ruptura;

puerto[k] = cadena[i];

k;

i

}

puerto[ k] = '\0';

i

memset( amp; test_sock, 0, sizeof( test_sock ) );

if ( ( strcmp( TCP, pro) != 0 )amp;amp; ( strcmp( UDP, pro) != 0 )amp;amp; ( strcmp(TCP, pro) ! = 0 )amp; ( strcmp( UDP, pro ) ! = 0 ))

{

printf ( "卙傛暟涓嶆? ¿Confirmación?\);