⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 libnet-headers.h

📁 libnet的unix/linux版本
💻 H
📖 第 1 页 / 共 2 页
字号:
#endif#ifndef     ICMP_UNREACH_HOST_PRECEDENCE#define     ICMP_UNREACH_HOST_PRECEDENCE    14#endif#ifndef     ICMP_UNREACH_PRECEDENCE_CUTOFF#define     ICMP_UNREACH_PRECEDENCE_CUTOFF  15#endif#ifndef     ICMP_REDIRECT_NET#define     ICMP_REDIRECT_NET               0#endif#ifndef     ICMP_REDIRECT_HOST#define     ICMP_REDIRECT_HOST              1#endif#ifndef     ICMP_REDIRECT_TOSNET#define     ICMP_REDIRECT_TOSNET            2#endif#ifndef     ICMP_REDIRECT_TOSHOST#define     ICMP_REDIRECT_TOSHOST           3#endif#ifndef     ICMP_TIMXCEED_INTRANS#define     ICMP_TIMXCEED_INTRANS           0#endif#ifndef     ICMP_TIMXCEED_REASS#define     ICMP_TIMXCEED_REASS             1#endif#ifndef     ICMP_PARAMPROB_OPTABSENT#define     ICMP_PARAMPROB_OPTABSENT        1#endif    u_short icmp_sum;    union    {        struct        {            u_short id;            u_short seq;        }echo;#undef icmp_id#undef icmp_seq#define icmp_id     hun.echo.id#define icmp_seq    hun.echo.seq         u_long gateway;        struct        {            u_short pad;            u_short mtu;        }frag;    }hun;    union    {        struct        {            n_time its_otime;            n_time its_rtime;            n_time its_ttime;        }ts;        struct        {            struct ip idi_ip;            /* options and then 64 bits of data */        }ip;        u_long mask;        char data[1];#undef icmp_mask#define icmp_mask    dun.mask#undef icmp_data#define icmp_data    dun.data#undef icmp_otime#define icmp_otime   dun.ts.its_otime#undef icmp_rtime#define icmp_rtime   dun.ts.its_rtime#undef icmp_ttime#define icmp_ttime   dun.ts.its_ttime    }dun;};/* *  IGMP header. */struct libnet_igmp_hdr{    u_char igmp_type;#ifndef IGMP_MEMBERSHIP_QUERY#define IGMP_MEMBERSHIP_QUERY           0x11    /* membership query */#endif#ifndef IGMP_V1_MEMBERSHIP_REPORT#define IGMP_V1_MEMBERSHIP_REPORT       0x12    /* Ver. 1 membership report */#endif#ifndef IGMP_V2_MEMBERSHIP_REPORT#define IGMP_V2_MEMBERSHIP_REPORT       0x16    /* Ver. 2 membership report */#endif#ifndef IGMP_LEAVE_GROUP#define IGMP_LEAVE_GROUP                0x17    /* Leave-group message */#endif    u_char igmp_code;    u_short igmp_sum;    struct in_addr igmp_group;};/*  *  Ethernet packet header prototype.  Too many O/S's define this differently. *  Easy enough to solve that and define it here. */struct libnet_ethernet_hdr{#ifndef ETHER_ADDR_LEN#define ETHER_ADDR_LEN 6#endif    u_char  ether_dhost[ETHER_ADDR_LEN];    /* destination ethernet address */    u_char  ether_shost[ETHER_ADDR_LEN];    /* source ethernet address */    u_short ether_type;                     /* packet type ID */};#define ETHERTYPE_PUP           0x0200  /* PUP protocol */#define ETHERTYPE_IP            0x0800  /* IP protocol */#define ETHERTYPE_ARP           0x0806  /* Addr. resolution protocol */#define ETHERTYPE_REVARP        0x8035  /* reverse Addr. resolution protocol */#define ETHERTYPE_VLAN          0x8100  /* IEEE 802.1Q VLAN tagging */#define ETHERTYPE_LOOPBACK      0x9000  /* used to test interfaces */#if (!__GLIBC__)struct ether_addr{    u_char  ether_addr_octet[6];};#endif/*  *  ARP packet header prototype.  Too many O/S's define this differently. *  Easy enough to solve that and define it here. */struct libnet_arp_hdr{    u_short ar_hrd;                         /* format of hardware address */#define ARPHRD_ETHER     1                  /* ethernet hardware format */    u_short ar_pro;                         /* format of protocol address */    u_char  ar_hln;                         /* length of hardware address */    u_char  ar_pln;                         /* length of protocol addres */    u_short ar_op;                          /* operation type */#define ARPOP_REQUEST    1                  /* req to resolve address */#define ARPOP_REPLY      2                  /* resp to previous request */#define ARPOP_REVREQUEST 3                  /* req protocol address given hardware */#define ARPOP_REVREPLY   4                  /* resp giving protocol address */#define ARPOP_INVREQUEST 8                  /* req to identify peer */#define ARPOP_INVREPLY   9                  /* resp identifying peer */    /*     *  These should implementation defined but I've hardcoded eth/IP.     */    u_char ar_sha[6];                         /* sender hardware address */    u_char ar_spa[4];                         /* sender protocol address */    u_char ar_tha[6];                         /* target hardware address */    u_char ar_tpa[4];                         /* target protocol address */};/* *  Base DNS header. */struct libnet_dns_hdr{    u_short id;             /* DNS packet ID */    u_short flags;          /* DNS flags */    u_short num_q;          /* Number of questions */    u_short num_answ_rr;    /* Number of answer resource records */    u_short num_auth_rr;    /* Number of authority resource records */    u_short num_addi_rr;    /* Number of additional resource records */};/* *  Base RIP (routing information protocol) header. */struct libnet_rip_hdr{    u_char cmd;             /* RIP command */#define RIPCMD_REQUEST      1   /* want info */#define RIPCMD_RESPONSE     2   /* responding to request */#define RIPCMD_TRACEON      3   /* turn tracing on */#define RIPCMD_TRACEOFF     4   /* turn it off */#define RIPCMD_POLL         5   /* like request, but anyone answers */#define RIPCMD_POLLENTRY    6   /* like poll, but for entire entry */#define RIPCMD_MAX          7    u_char ver;             /* RIP version */#define RIPVER_0            0#define RIPVER_1            1#define RIPVER_2            2    u_short rd;             /* Zero (v1) or Routing Domain (v2) */    u_short af;             /* Address family */    u_short rt;             /* Zero (v1) or Route Tag (v2) */    u_long addr;            /* IP address */    u_long mask;            /* Zero (v1) or Subnet Mask (v2) */    u_long next_hop;        /* Zero (v1) or Next hop IP address (v2) */    u_long metric;          /* Metric */};/* *  VRRP packet header prototype. */#ifndef IPPROTO_VRRP#define IPPROTO_VRRP 112#endifstruct libnet_vrrp_hdr{#if (LIBNET_LIL_ENDIAN)    u_char vrrp_v:4,        /* protocol version */           vrrp_t:4;        /* packet type */#endif#if (LIBNET_BIG_ENDIAN)    u_char vrrp_t:4,        /* packet type */           vrrp_v:4;        /* protocol version */#endif#define LIBNET_VRRP_TYPE_ADVERT 0x1    u_char vrrp_vrouter_id; /* virtual router id */    u_char vrrp_priority;   /* priority */    u_char vrrp_ip_count;   /* number of IP addresses */    u_char vrrp_auth_type;  /* authorization type */#define LIBNET_VRRP_AUTH_NONE   0x1#define LIBNET_VRRP_AUTH_PASSWD 0x2#define LIBNET_VRRP_AUTH_IPAH   0x3    u_char vrrp_advert_int; /* advertisement interval */    u_short vrrp_sum;      /* checksum */};#if 0struct libnet_snmp_hdr{    /* ASN.1 BER support first */};#endif/* *  TCP options structure. */struct tcpoption{    u_char tcpopt_list[MAX_IPOPTLEN];};#if (__linux__)/* *  Linux has a radically different IP options structure from BSD. */struct ipoption{    struct  in_addr ipopt_dst;          /* first-hop dst if source routed */    char ipopt_list[MAX_IPOPTLEN];      /* options proper */};#endif#endif  /* __LIBNET_HEADERS_H *//* EOF */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -