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编译器(如果安装过了,就可以免了)

  2, Libpcap有一些依赖包,所以在安装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

posted @ 2015-11-13 21:33  孙悟坑  阅读(600)  评论(0编辑  收藏  举报