Portál AbcLinuxu, 13. května 2025 20:35
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.