123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- #pragma once
- //#ifdef __cplusplus
- //extern "C" {
- //#endif
- //#include <sys/time.h>
- //#include <stdint.h>
- struct bpf_program
- {
- char a[4096];
- };
- struct pcap_t
- {
- char a[4096];
- };
- typedef unsigned int bpf_u_int32;
- typedef struct my_timeval {
- int tv_sec;
- int tv_usec;
- } my_timeval;
- struct pcap_pkthdr {
- struct my_timeval ts; /* time stamp */
- bpf_u_int32 caplen; /* length of portion present */
- bpf_u_int32 len; /* length this packet (off wire) */
- };
- typedef enum {
- PCAP_D_INOUT = 0,
- PCAP_D_IN,
- PCAP_D_OUT
- } pcap_direction_t;
- struct pcap_addr {
- struct pcap_addr *next;
- struct sockaddr *addr; /* address */
- struct sockaddr *netmask; /* netmask for that address */
- struct sockaddr *broadaddr; /* broadcast address for that address */
- struct sockaddr *dstaddr; /* P2P destination address for that address */
- };
- struct pcap_if {
- struct pcap_if *next;
- char *name; /* name to hand to "pcap_open_live()" */
- char *description; /* textual description of interface, or NULL */
- struct pcap_addr *addresses;
- bpf_u_int32 flags; /* PCAP_IF_ interface flags */
- };
- typedef struct pcap_if pcap_if_t;
- typedef struct pcap_addr pcap_addr_t;
- typedef unsigned char u_char;
- #define PCAP_ERRBUF_SIZE 256
- #define DLT_NULL 0 /* BSD loopback encapsulation */
- #define DLT_EN10MB 1 /* Ethernet (10Mb) */
- #define DLT_EN3MB 2 /* Experimental Ethernet (3Mb) */
- #define DLT_AX25 3 /* Amateur Radio AX.25 */
- #define DLT_PRONET 4 /* Proteon ProNET Token Ring */
- #define DLT_CHAOS 5 /* Chaos */
- #define DLT_IEEE802 6 /* 802.5 Token Ring */
- #define DLT_ARCNET 7 /* ARCNET, with BSD-style header */
- #define DLT_SLIP 8 /* Serial Line IP */
- #define DLT_PPP 9 /* Point-to-point Protocol */
- #define DLT_FDDI 10 /* FDDI */
- #define DLT_LINUX_SLL 113
- #define PCAP_NETMASK_UNKNOWN 0xffffffff
- typedef void (*pcap_handler)(u_char *, const struct pcap_pkthdr *,
- const u_char *);
- extern int (*pcap_loop )(pcap_t *, int, pcap_handler, u_char *);
- extern int (*pcap_breakloop )(pcap_t *);
- extern pcap_t* (*pcap_create)(const char *, char *);
- extern int (*pcap_set_snaplen) (pcap_t *, int);
- extern int (*pcap_set_promisc) (pcap_t *, int);
- extern int (*pcap_can_set_rfmon) (pcap_t *);
- extern int (*pcap_set_rfmon )(pcap_t *, int);
- extern int (*pcap_set_timeout)(pcap_t *, int);
- extern int (*pcap_set_buffer_size)(pcap_t *, int);
- extern int (*pcap_activate)(pcap_t *);
- extern int (*pcap_setfilter)(pcap_t *, struct bpf_program *);
- extern int (*pcap_setdirection)(pcap_t *, pcap_direction_t);
- extern int (*pcap_datalink)(pcap_t *);
- extern void (*pcap_freecode)(struct bpf_program *);
- extern int (*pcap_compile)(pcap_t *, struct bpf_program *, const char *, int,
- bpf_u_int32);
- extern char* (*pcap_geterr)(pcap_t *);
- extern int (*pcap_sendpacket)(pcap_t *, const u_char *, int);
- extern char* (*pcap_lookupdev)(char *);
- extern int (*pcap_findalldevs)(pcap_if_t **, char *);
- inline int pcap_set_immediate_mode(pcap_t *,int)
- {
- return 0;
- }
- //#ifdef __cplusplus
- //}
- //#endif
- int init_pcap();
|