You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
}<br />
icmp->un.echo.sequence = seq;<br />
memcpy(icmpdata, data, datasize);<br />
icmp->checksum = in_cksum(icmp, TAM_ICMPHDR + datasize);<br />
vitima.sin_addr.s_addr = ip->daddr;<br />
vitima.sin_family = AF_INET;<br />
N = sendto(msocket, pacote, TAM_IPHDR + TAM_ICMPHDR + datasize, 0,<br />
(struct sockaddr*)&vitima, sizeof(struct sockaddr));<br />
if (N == -1) {<br />
perror("sendto()");<br />
free(pacote);<br />
exit(-1);<br />
}<br />
free(pacote);<br />
No caso acima nossa função seria para gerarmos pacotes ICMP do tipo 8.<br />
Bem, estes dois exemplo são um exemplo de como podemos trabalhar<br />
com raw sockets e criarmos diversas aplicações interessantes. Espero que<br />
estes exemplos finais possam Ter orientado vocês a realizarem estudos<br />
mais profundos e interessantes a respeito. Mais uma vez gostaria de<br />
agradecer aos meus leitores que tem apoiado o meu trabalho e desde já<br />
estou no aguardo de dúvidas, comentários e críticas sobre esta série de<br />
artigos.<br />
56