ubuntu 安裝 libcap

從我的網易博客移動。。


libpcap 是unix/linux 平臺下的網絡數據包捕獲函數包,

  大多數網絡監控軟件都以它爲基礎。

  Libpcap 可以在絕大多數類unix 平臺下工作.

  Libpcap 應用程序框架

  Libpcap 提供了系統獨立的用戶級別網絡數據包捕獲接口,並充分考慮到應用程序的可移植性。Libpcap 可以在絕大多數類unix 平臺下工作,在windows 平臺下,一個與libpcap 很類似的函數包 winpcap 提供捕獲功能,其官方網站是http://winpcap.polito.it/ 。

1,安裝GCC。(ubuntu默認安裝了GCC)

命令:sudo apt-get install build-essential

寫一個hello程序測試下:

#include <stdio.h>
int main(void)
{
printf("Hello, world!/n");
return 0;
}
假定該代碼存爲文件‘hello.c’ 。
要用 編譯該文件,使用下面的命令: $ gcc -Wall hello.c -o hello

用./hello執行就會顯示Hello, world!;

2.編譯GNU M4
這個是編譯flex必備的環境,否則會提示“GNU M4 1.4 is required”的錯誤

打開網址:ftp.gnu.org/gnu/m4/ 下載 GNU M4最新版軟件包,通過 tar zxvf 命令解壓文件,進入M4的目錄,用命令ls,就會發現有個可執行文件configure,然後依次執行

./confugure

(sudo)make

(sudo)make install.

這樣,GNU M4就編譯安裝好了。

3.編譯flex(version 2.5.33)
沒有flex,直接安裝libpcap會提示“Your operating system's lex is insufficient to compile libpcap”錯誤。

打開網址:flex.sourceforge.net/ 下載 flex最新版軟件包,通過 tar zxvf 命令解壓文件,進入flex的目錄,用命令ls,就會發現有個可執行文件configure,然後依次執行

./confugure

(sudo)make

(sudo)make install.

這樣,flex就編譯安裝好了
4.編譯bison(version 2.3)
在安裝flex後直接安裝libpcap會提示“don't have both flex and bison;reverting to lex/yacc”錯誤,前面安裝的是flex,就需要搭配bison

打開網址:ftp.gnu.org/gnu/bison/ 下載 bison最新版軟件包,通過 tar zxvf 命令解壓文件,進入bison的目錄,用命令ls,就會發現有個可執行文件configure,然後依次執行

./confugure

(sudo)make

(sudo)make install.

這樣,bison就編譯安裝好了

5.編譯libpcap
以上4步安裝好了。就到www.tcpdump.org/ 下載libpcap的最新版。然後解壓文件,進入到該目錄。用ls命令也能發現有個可執行文件configure,然後依次執行命令:

./confugure

(sudo)make

(sudo)make install.

這樣,libcap就編譯安裝好了

6,把libcap目錄中的pcap文件夾到 /usr/include 下。並且到 /usr/lib/ 把libpcap.so.1.1.1文件 重命名爲:libpcap.so.1

用個例子測試下:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pcap/pcap.h>
int main(int argc,char *argv[]){
char *dev, errbuf[PCAP_ERRBUF_SIZE];
dev=pcap_lookupdev(errbuf);
if(dev==NULL){
fprintf(stderr,"couldn't find default device: %s\n",errbuf);
return(2);
}
printf("Device: %s\n",dev);
return(0);
}


存爲test.c。用命令:gcc test.c -o test -lpcap 編譯。運行此類程序時需要以root的身份運行,因爲系統不允許非root用戶進行一些網絡操作。所以,運行命令爲:(sudo)./test ..

運行結果:Device: eth0



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章