分享

ubuntu 安装 libcap

 xinyz4104 2015-01-27

ubuntu 安装 libcap

libpcap 是unix/linux 平台下的网络数据包捕获函数包,

  大多数网络监控软件都以它为基础。

  Libpcap 可以在绝大多数类unix 平台下工作.

  Libpcap 应用程序框架

  Libpcap 提供了系统独立的用户级别网络数据包捕获接口,并充分考虑到应用程序的可移植性。Libpcap 可以在绝大多数类unix 平台下工作,在windows 平台下,一个与libpcap 很类似的函数包 winpcap 提供捕获功能,其官方网站是http://winpcap./ 。

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

用个例子测试下:

  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <unistd.h>  
  4. #include <pcap/pcap.h>  
  5. int main(int argc,char *argv[]){  
  6. char *dev, errbuf[PCAP_ERRBUF_SIZE];  
  7. dev=pcap_lookupdev(errbuf);  
  8. if(dev==NULL){  
  9. fprintf(stderr,"couldn't find default device: %s\n",errbuf);  
  10. return(2);  
  11. }  
  12. printf("Device: %s\n",dev);  
  13. return(0);  
  14. }  


存为test.c。用命令:gcc test.c -o test -lpcap 编译。运行此类程序时需要以root的身份运行,因为系统不允许非root用户进行一些网络操作。所以,运行命令为:(sudo)./test ..

运行结果:Device: eth0

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多