pcap的安裝與配置


  pcap,即 packet capture library 抓包庫,這個抓包庫給抓包系統提供了一個高層次的接口。所有網絡上的數據包,甚至是那些發送給其他主機的,通過這種機制,都是可以捕獲的。它也支持把捕獲的數據包保存為本地文件和從本地文件讀取信息。

  還有一些詳細介紹可以參考: http://baike.baidu.com/view/6584893.htm

  libpcap 的一些介紹,http://baike.baidu.com/view/1319961.htm

   and 這是libpcap的下載資料 http://www.tcpdump.org/release/

 

有一些步驟或者安裝錯誤的解決方法可以參考這里:http://blog.csdn.net/cfjtaishan/article/details/7096085

總結一下:

  1, 安裝gcc編譯器(如果安裝過了,就可以免了)

  2Libpcap有一些依賴包,所以在安裝Libpacap之前還得依次安裝GNU M4,bison和flex (直接敲命令就行:sudo apt-get install flex sudo apt-get install bison 

  3, 把下載的這幾個安裝包解壓縮到同一個目錄,終端下用root身份依次進入上述4個文件夾。分別執行如下命令編譯安裝:
      ./configure
      make
      make install

  4, 測試代碼(轉自:http://hi.baidu.com/amauri3389/item/0982a400359cb9d51ef04668

      

#include<stdio.h>

int main(){
    char *dev,errbuf[1024];
    dev=pcap_lookupdev(errbuf);    
    if(dev==NULL){
        fprintf(stderr,"coundn't find default device: %s \n",errbuf);
        return 2;
    }
    printf("Device: %s \n",dev);
    return 0;
}

編譯:  gcc -o test test.c -lpcap (可能會出現

                  here.c: 在函數‘main’中:
                  here.c:12:5: 警告: 賦值時將整數賦給指針,未作類型轉換 [默認啟用]

               的提示信息,別管它,繼續下一步)

執行: 執行的時候也因該以root身份  sudo su 輸入密碼
    ./test 執行生成的可執行文件test。

接下來出現的問題,我所遇到的:

  提示:  error while loading shared libraries: libpcap.so.1: cannot open shared object file: No such file or directory

  解決方法:打開 /etc目錄下的文件   ld.so.conf ,添加兩行
          /usr/local/lib
          /usr/lib

  然后在終端下執行從新加載配置的命令:  ldconfig

  好了,再編譯運行test.c成功輸出結果:
        Device: eth0
  如果不以root身份執行,將會輸出:
        couldn't find default device: no suitable device found

 

附:一些bison的參考與學習資料:   http://zh.wikipedia.org/wiki/GNU_bison

                http://wenku.baidu.com/view/6501c928bd64783e09122ba1.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM