01.01.2013 Views

Liber 000 - Astrum Argentum

Liber 000 - Astrum Argentum

Liber 000 - Astrum Argentum

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

utilizando a função CONNECT().<br />

conexao = connect(e_socket,(struct sockaddr * )&destino, sizeof<br />

(destino));<br />

if(conexao < 0) {<br />

perror("Porta fechada !\n");<br />

close(e_socket);<br />

exit(1);<br />

}<br />

printf("A PORTA 22 DO SSH ESTA ABERTA !\n");<br />

close(e_socket);<br />

}<br />

Vamos compilar o programa para testarmos, no prompt de seu Linux<br />

digite :<br />

oldmbox# gcc –o ex1 ex1.c<br />

Com o programa compilado digite :<br />

oldmbox# ./ex1<br />

Se sua porta 22 estiver aberta, a resposta será o seguinte :<br />

oldmbox# A PORTA 22 DO SSH ESTA ABERTA !<br />

Caso contrário a resposta será negativa.<br />

A função getservbyport() :<br />

Esta função permite que possmaos determinar que serviço está sendo<br />

executado em uma determinada porta TCP. A mesma se baseia no<br />

arquivo services, utilizando-o como referência. Ele necessita da<br />

declaração abaixo, no início de seu programa :<br />

#include <br />

Onde o protótipo da função é desvrito da seguinte maneira :<br />

struct servent *getservbyport(int port, const char *proto);<br />

Onde a estrutura servent está definida da seginte forma na biblioteca<br />

netdb.h :<br />

struct servent {<br />

char *s_name;<br />

char **s_aliases;<br />

int s_port;<br />

char *s_proto; }<br />

Vamos analisar cada ítem deste structure abaixo :<br />

29

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

Saved successfully!

Ooh no, something went wrong!