#ifndef NITPICKER_IP_H #define NITPICKER_IP_H #include #include #include "types.h" /* * IP Header */ #define TCPTYPE 6 #define UDPTYPE 17 #define ICMPTYPE 1 #define tcp_sport prot.tcp.sport #define tcp_dport prot.tcp.dport #define udp_sport prot.udp.sport #define udp_dport prot.udp.dport #define icmp_type prot.icmp.type #define icmp_subcode prot.icmp.subcode #define printip( buf, addr ) sprintf(buf, "%lu.%lu.%lu.%lu", \ addr&0xff,( addr >> 8)&0xff,(addr >> 16)&0xff, addr >> 24); // addr >> 24, (addr >> 16)&0xff, (addr >> 8)&0xff, addr&0xff ) union ipprot { struct { uint16 sport; /* src Port */ uint16 dport; /* dst Port */ } tcp; struct { uint16 sport; /* src Port */ uint16 dport; /* dst Port */ } udp; struct { unsigned char type; /* icmp type */ unsigned char subcode; /* icmp code */ } icmp; }; struct ip_t { char filler1[2]; /* Version, Headerlength, TOS */ uint16 len; /* Total IP-Length */ char filler2[5]; /* id, offset, ttl */ u_char typenr; /* Protocol Type */ char filler3[2]; /* Checksup */ uint32 sip; /* src IP */ uint32 dip; /* dst IP */ union ipprot prot; }; #endif