TCPDUMP/LIBPCAP 3-PCAP 中文手册(1)
SYNOPSIS
#include <pcap/pcap.h>DESCRIPTION
PCAP提供為抓包系統提供高級接口。網絡上的所有數據包,即使是發往其他主機的數據包,都可以通過這種機制訪問。它還支持將捕獲的數據包保存到“savefile”,和從“savefile”中讀取數據包。
Opening a capture handle for reading
調用 pcap_create()?時給定要捕獲的網絡或者其他接口名稱,以打開一個用于實時捕獲的句柄,并需要設置合適參數;
調用 pcap_activate() 啟動句柄;
調用 pcap_findalldevs()?來獲得可被打開用于實時捕獲的設備列表;
調用 pcap_freealldevs()來釋放pcap_findalldevs() 返回的設備列表;
調用 pcap_lookupdev()?會返回列表中第一個非回環網絡接口(not 'loopback');
調用 pcap_open_offline() 時給定“savefile”的路徑名,以打開一個用于讀取網絡包的“savefile”的句柄;
調用 pcap_fopen_offline() 時給定一個來源于一個已打開的用于讀取的文件的 FILE * 參數(fopen),來為 "savefile" 建立句柄;
調用 pcap_open_dead()獲取(用在需要 pcap_t 類型作參數的函數中的) "fake" pcap_t,比如打開一個 "savefile" 用于寫的函數 和 編譯過濾器表達式函數;
(原文:In order to get a ``fake'' pcap_t for use in routines that require a pcap_t as an argument, such as routines to open a ``savefile'' for writing and to compile a filter expression, call pcap_open_dead().)
pcap_create(), pcap_open_offline(), pcap_fopen_offline(), and pcap_open_dead() 返回一個指向 pcap_t 類型的指針, 該指針是句柄,用于從 "capture stream"?或者 "savefile" 中讀取數據包,用于查找與 "capture stream"?或者 “savefile” 相關的信息;
使用 pcap_close()關閉句柄;
Options that can be set on a capture handle
snapshot length
如果捕獲時抓取整個 packet 內容,需要更多 CPU 時間拷貝 packet 到應用程序,更多的磁盤和網絡帶寬把 packet 寫入文件,更多的磁盤空間來保存 packet。如果你不需要整個 packet 內容 — 例如,如果你只對 packets 中 TCP 首部感興趣 — 你可以設置 "snapshot length" 為一個合適的數值。如果 "snapshot length" 被設置為snaplen,并且 snaplen 小于被捕獲的 packet 大小,那么只有 packet 的前 snaplen 長度的字節會被捕獲并作為 packet data 內容。
在大部分并非所有網絡上,從 packet 捕獲所有可用數據, 65535 長度的 "snapshot length" 足夠了。
調用 pcap_set_snaplen()來設置 "snapshot length"。
總結
以上是生活随笔為你收集整理的TCPDUMP/LIBPCAP 3-PCAP 中文手册(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言 判断完数
- 下一篇: 跟踪AppInfo代码