Liber 000 - Astrum Argentum

Liber 000 - Astrum Argentum Liber 000 - Astrum Argentum

astrumargentum.org
from astrumargentum.org More from this publisher
01.01.2013 Views

} fprintf(stderr, "Uso: %s -l logfile\n", argv[0]); exit(0); } if (argc > 1) { endereco = (argv[1]); arquivo = endereco; portai = 1; portaf = 65000; } if (argc > 2) { portai = atoi((char *) argv[2]); portaf = atoi((char *) argv[3]); } if (argc > 3) { endereco = (argv[1]); arquivo = endereco; } if (argc > 4) { opcao = ++(argv[4]); if (*opcao == 'l') arquivo = (argv[5]); } signal(SIGALRM, timeout); if ((fp = fopen(arquivo, "w+")) == NULL) { perror("fopen()"); exit(-1); } a = 0; portas = portai; fprintf(fp, "-------------------------------------\n"); fprintf(fp, "-- Resultado --\n"); fprintf(fp, "-------------------------------------\n"); scan(endereco); printf("Feito ! Veja os resultados no arquivo de log\n"); return (0); fclose(fp); void timeout() { conector = -1; } void scan(char *endereco) { 32 /*Testa TCP */ ; while (portas

} /*Declaracao do Socket*/; } msocket = socket(AF_INET, SOCK_STREAM, 0); if (msocket < 0) { perror("socket()"); continue; } alvo.sin_family = AF_INET; alvo.sin_port = htons(portas); alvo.sin_addr.s_addr = inet_addr(endereco); bzero(&(alvo.sin_zero), 8); fprintf(stderr, "\033[36mScanning : \033[37m"); fprintf(stderr, "%i\r", portas); alarm(5); /* Teste do Socket*/ conector = connect(msocket, (struct sockaddr *) &alvo, sizeof(alvo)); alarm(0); if (conector < 0) { /* printf("Porta TCP Inativa %i\n", portas); */ close(conector); close(msocket); a++; portas++; continue; } fprintf(fp, "Conexao aceita na porta TCP %d\n\n", portas); a++; portas++; close(conector); close(msocket); Eis a proposta de nossa primeira parte acima feito e para vocês modificarem a seu bel prazer. Proponho para os mais ousados um desafio : montar um scanner que resolva por nome no lugar do IP; O Mundo Cliente / Servidor Estaremos agora explorando um dos pontos mais importantes e vastos deste fascinante assunto : a programação cliente / servidor. Nos dias de hoje a Internet e a maioria aplicações de rede estão baseadas na filosofia cliente/ servidor. 33

}<br />

fprintf(stderr,<br />

"Uso: %s -l logfile\n",<br />

argv[0]);<br />

exit(0);<br />

}<br />

if (argc > 1) {<br />

endereco = (argv[1]);<br />

arquivo = endereco;<br />

portai = 1;<br />

portaf = 65<strong>000</strong>;<br />

}<br />

if (argc > 2) {<br />

portai = atoi((char *) argv[2]);<br />

portaf = atoi((char *) argv[3]);<br />

}<br />

if (argc > 3) {<br />

endereco = (argv[1]);<br />

arquivo = endereco;<br />

}<br />

if (argc > 4) {<br />

opcao = ++(argv[4]);<br />

if (*opcao == 'l')<br />

arquivo = (argv[5]);<br />

}<br />

signal(SIGALRM, timeout);<br />

if ((fp = fopen(arquivo, "w+")) == NULL) {<br />

perror("fopen()");<br />

exit(-1);<br />

}<br />

a = 0;<br />

portas = portai;<br />

fprintf(fp, "-------------------------------------\n");<br />

fprintf(fp, "-- Resultado --\n");<br />

fprintf(fp, "-------------------------------------\n");<br />

scan(endereco);<br />

printf("Feito ! Veja os resultados no arquivo de log\n");<br />

return (0);<br />

fclose(fp);<br />

void timeout()<br />

{<br />

conector = -1;<br />

}<br />

void scan(char *endereco)<br />

{<br />

32<br />

/*Testa TCP */ ;<br />

while (portas

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!