Portál AbcLinuxu, 8. listopadu 2025 20:52
int main(){
struct iphdr *ip; //IP header
struct tcphdr *tcp; //TCP header
struct udphdr *udp; //UDP header
int sd_tcp, sd_udp;
char *buffer;
buffer = (char *) malloc(PKT_LEN);
memset(buffer, 0, PKT_LEN);
sd_tcp = socket(PF_INET, SOCK_RAW, IPPROTO_TCP);
if (sd_tcp < 0)
perror("Socket error()");
while((read(sd_tcp, buffer, 8192) > 0)){
ip = (struct iphdr *) buffer;
printf("-- IP Header --\n");
printf("Zdrojova IP: %s\n", inet_ntoa(ip->saddr));
printf("Cilova IP: %s\n", inet_ntoa(ip->daddr));
tcp = (struct tcphdr *) (buffer + ip->ihl*4); //init header TCP
printf("-- TCP Header --\n");
printf("Zdrojovy port: %d\n", ntohs(tcp->source));
printf("Cilovy port: %d\n", ntohs(tcp->dest));
printf("Cislo ACK: %u\n", ntohl(tcp->ack_seq));
printf("Flag FIN: %d\n", tcp->fin);
printf("Flag SYN: %d\n", tcp->syn);
printf("Flag RST: %d\n", tcp->rst);
printf("Flag PSH: %d\n", tcp->psh);
printf("Flag ACK: %d\n", tcp->ack);
printf("Flag URG: %d\n", tcp->urg);
printf("-----KONEC-----");
memset(buffer, 0, PKT_LEN);
}
return 0;
}
Priklad je jen ciste demontracni, jde mi o to jestli je postup dobry a proc
to zlobi.
Budu vdecny za kazdou radu, protoze uz to resim nekolik dni a netusim kde je
bota.
Dekuji.
Na otázku zatím nikdo bohužel neodpověděl.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.