2014-11-02 31 views
0

那裏的定義pcap_t?我剛發現typedef struct pcap pcap_t;pcap.h,但pcap沒有定義那裏和wincap手冊有同樣的問題沒有這個描述或可能是我沒有找到正確的。如果這個對圖書館來說可能是某人可以說出可能的結構?pcap_t有什麼結構?

+0

pcap_t是被當作一個不透明的手柄。你不應該訪問它的任何成員。一旦創建,您只能將其傳遞給其他pcap函數。 – nos 2014-11-02 13:14:17

回答

2

這是一個可能的答案(here's the source):

struct pcap { 
    int fd; 
    int snapshot; 
    int linktype; 
    int tzoff;  /* timezone offset */ 
    int offset;  /* offset for proper alignment */ 

    struct pcap_sf sf; 
    struct pcap_md md; 

    /* 
    * Read buffer. 
    */ 
    int bufsize; 
    u_char *buffer; 
    u_char *bp; 
    int cc; 

    /* 
    * Place holder for pcap_next(). 
    */ 
    u_char *pkt; 


    /* 
    * Placeholder for filter code if bpf not in kernel. 
    */ 
    struct bpf_program fcode; 

    char errbuf[PCAP_ERRBUF_SIZE]; 
}; 
+0

謝謝。我忘了wincap有源碼)。 – ratojakuf 2014-11-02 13:21:52

+0

請注意,如果您曾經編寫過任何取決於pcap_t佈局的代碼,那麼您的代碼將繼續與未來版本的WinPcap一起使用,否則絕對沒有任何擔保***使用libpcap。正如他在評論中指出的那樣,這是一個不透明的結構,並且意圖是如此;例如,在libpcap中,它在過去的幾個版本中發生了很大的變化,這些變化在某些時候可能會成爲WinPcap的一部分。 – 2014-11-03 01:56:54