2016-04-13 10:24:25 halley333 阅读数 847

1.安装GCC:   yum -y install gcc-c++

2.安装flex:

  yum -y install flex 

  没有flex,直接安装libpcap会提示"Your operating system's lex is insufficient to compile libpcap"错误;

3.安装bison

  yum -y install bison

  前面安装的是flex,就需要搭配bison,如不会提示"don't have both flex and bison;reverting to lex/yacc"错误;

4.安装 libpcap

  下载地址: http://www.tcpdump.org/

  下载版本:wget -c http://www.tcpdump.org/release/libpcap-1.5.3.tar.gz

解压软件包: tar zxf libpcap-1.0.0.tar.gz

进入解压后的目录,输入命令行:

   命令如下:

   ./configure

   make

   make install

5.简单的例子测试一下libpcap:

  //device.c 

  #include <stdio.h>

  #include <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);

  }

编译指令:gcc -o device device.c -lpcap

  备注:编译时要使用libpcap的参数-lpcap,否则会提示“pcap_lookupdev 未定义的引用”的错误;

  运行指令:./device

转载:http://www.tcpdump.org/release/libpcap-1.5.3.tar.gz

http://blog.sina.com.cn/s/blog_6f289b0e01014jst.html

运行遇到错误解决办法:

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

//-----------------------------------------------------------

//AUTHOR:lanyang123456

//DATE:2011-11-10

//-----------------------------------------------------------

Linux系统下,运行sniff程序需要libpcap库。

首先下载安装该库,下载地址: http://www.tcpdump.org/

点击DOWNLOADS

下载后

(1)解压

(2)进入解压后文件目录, ./configure

(3)make install

默认安装目录/usr/local/lib

编译sniff程序通过,运行sniff程序时,出现如下错误:

./sn: error while loadingshared libraries: libpcap.so.1: cannot open shared object file: No such file ordirectory

由于libpcap已经安装,所以是程序无法找到库所在的位置的原因。

解决办法:

将libpcap.so.1所在目录添加到文件/etc/ld.so.conf中,

打开ld.so.conf文件,然后添加一行/usr/local/lib:

includeld.so.conf.d/*.conf //原来的内容

/usr/local/lib

然后保存,再终端下执行 ldconfig。

再运行sniff程序,OK。

有时用tar解压文件.错误如下:

gzip: stdin: unexpectedend of file tar: Unexpected EOF in archive tar: Unexpected EOF in archive tar:Error is not recoverable: exiting now

原因:

文件被破坏,重新下载。

2013-12-27 16:50:12 u013242491 阅读数 868

1.下载libpcap

www.tcpdump.org


2.安装 GNU M4

命令: sudo apt-get install m4
这个是编译flex 必备的环境,否则会提示“GNU M4 1.4 is required” 的错误

3.安装 flex
命令: sudo apt-get install flex
没有flex ,直接安装libpcap 会提示“Your operating system's lex is insufficient to compile libpcap” 错误。

4.编译 bison
命令: sudo apt-get install bison
在安装flex 后直接安装libpcap 会提示“don't have both flex and bison;reverting to lex/yacc” 错误,前面安装的是flex ,就需要搭配bison

5.编译 libpcap
上面四步完成后,就可以使用下面三个指令安装libpcap 环境: 切换到libpcap 目录下( 具体可查看libcap 目 录下官方提供的install 文档) 
./configure 
make 
sudo make install

6.测试程序

#include <string.h>  
#include <stdlib.h>  
#include <pcap.h>  
  
#define MAXBYTE2CAPTURE 2048  
  
void processPacket(u_char *arg, const struct pcap_pkthdr *pkthdr, const u_char *packet) {  
    int i = 0, *counter = (int *)arg;  
  
    printf("Packet Count: %d\n", ++(*counter));  
    printf("Received Packet Size: %d\n", pkthdr->len);  
    printf("Payload:\n");  
    for (i = 0; i < pkthdr->len; i++) {  
        if (isprint(packet[i]))  
            printf("%c ", packet[i]);  
        else   
            printf(". ");  
  
        if ((i % 16 == 0 && i != 0) || i == pkthdr->len-1)  
            printf("\n");  
  
    }  
    return;  
}  
  
int main() {  
  
    int i = 0, count = 0;  
    pcap_t *descr = NULL;  
    char errbuf[PCAP_ERRBUF_SIZE], *device = NULL;  
    memset(errbuf, 0, PCAP_ERRBUF_SIZE);  
  
    /* Get the name of the first device suitable for capture */  
    device = pcap_lookupdev(errbuf);  
  
    printf("Opening device %s\n", device);  
  
    /* Open device in promiscuous mode */  
    descr = pcap_open_live(device, MAXBYTE2CAPTURE, 1, 512, errbuf);  
  
    /* Loop forever & call processPacket() for every received packet */  
    pcap_loop(descr, -1, processPacket, (u_char *)&count);  
  
    return 0;  
}  

7.编译

gcc -o device device.c -lpcap

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

需要 sudo ln -s /usr/local/lib/libpcap.so.1  /usr/lib/libpcap.so.1


2015-11-26 20:06:43 H002399 阅读数 1918
 

linux下安装libpcap步骤

未经博主允许不得转载。

1.从 ftp://ftp.gnu.org/gnu/下载最新版本flex、bison、GNU M4、libpcap安装包。链接如下:

ftp://ftp.gnu.org/gnu/bison/

ftp://ftp.gnu.org/gnu/m4/

http://sourceforge.net/projects/flex/files/

http://www.tcpdump.org/release/

2.解压各个安装包(注意:如果使用的是虚拟机,需解压到非windows共享文件夹下)

进入目标文件所在目录,解压下载的4个安装包:tar –zxvf libpcap-1.2.1.tar.gz      (tar -zxvf 需解压文件名)

3.依次到m4**,bison-**,flex-**,libpcap-**各个目录下运行:

sudo ./configure

sudo make

sudo make install

注意:拷贝 libpcap-**/pcap文件夹到 /usr/include 下。并且到 /usr/lib/ 把libpcap.so.1.0.0(这个文件名称不同版本会有不同,见下一种方法) 重命名为:libpcap.so.1

sudo cp -r /home/joyce/libpcap-1.2.1/pcap  /usr/include/pcap

mv libpcap.so.1.0.0 libpcap.so.1

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

环境:Ubuntu10.10   libpcap-1.2.0rc1   

操作:代码由C编写,gcc编译通过,以管理员权限运行,出错

在网上搜罗了下,成功解决问题。

解决方案:

1. 执行 locate libpcap.so.1   ,  查看libpcap.so.1在系统中的路径  ,  显示为 :  /usr/lib/libpcap.so.1.1.1

2. 以管理员权限打开编辑 /etc/ld.so.conf 文件, 末尾新一行追加  /usr/lib ,  /usr/lib 为 libpcap.so.1.1.1 所在目录, 保存退出

3. 以管理员权限执行 ldconfig 命令,

4. 成功


编译程序时需要加  -lpcap,运行时使用root权限
2011-08-10 16:24:40 yuwei162 阅读数 60
libpcap是unix/linux平台下的网络数据包捕获函数包。
ubuntu 下需要的安装包:

m4-**-.tar.gz (版本自己选择 ftp.gnu.org/gnu/m4/ 下载) 如果没有编译安装此文件,在编译安装bison时,就会出现 “configure: error: GNU M4 1.4 is required”的错误提示。

bison-**-.tar.gz(版本自己选择 ftp.gnu.org/gnu/bison/) 如果没有编译安装此文件,在编译安装libpcap时,就会出现 "configure: WARNING: don't have both flex and bison; reverting to lex/yacc checking for capable lex... insufficient" 的错误提示。

flex-**.tar.gz(版本自己选择 flex.sourceforge.net/) 如果没有编译安装此文件,在编译安装libpcap时,就会出现 “configure: error: Your operating system's lex is insufficient to compile libpcap.”的错误提示。
libpcap-**.tar.gz (版本自己选择 www.tcpdump.org/)

我所用版本(m4要1.4.6 以上太高如1.4.15也会错):
m4-1.4.12.tar.bz2 bison-2.5.tar.gz flex-2.5.35.tar.gz libpcap-1.1.1.tar.gz

下载的文件均位于:下载文件下。

进入下载文件夹。

先解压:tar -xzvf **.tar.gz
而后依次进入目录m4**,bison-**,flex-**,libpcap-** 并执行以下命令:
sudo ./configure
sudo make
sudo make install
命令完成后,libpcap网络捕包接口程序方可使用。
在实际编程编译源文件的时候,需要注意一些地方,指定编译链接库。
#gcc test.c -o test -lpcap
注意:运行此类程序时需要以root的身份运行,因为系统不允许非root用户进行一些网络操作

注意:拷贝 libpcap-1.1-1.1/pcap文件夹到 /usr/include 下。并且到 /usr/lib/ 把libpcap.so.1.1.1 重命名为:libpcap.so.1
2005-12-02 09:17:00 winki7 阅读数 7666
我最近开发个项目,要用到 libpcap 函数库,现将安装方法放在主页上供大家参考,
一 下载libpcap 库,文件的格式为x.tar.gz
二 安装
     1、用
          #tar zxvf x.tat.gz
          命令解压文件到你的当前目录
     2、进入刚才解开的libpcap目录,执行
          #./configure
          命令,生成Makefile文件
    3、输入
          #make install
          将生成的库安装到系统默认目录中。此目录为 /usr/lib ,如果需要修改,可以修改文件Makefile 的 prefix。
    4、输入
         #make install-incl
         将头文件安装至系统默认目录,/usr/include,修改同上
三 使用
          如果要使用libpcap,一般加入
          #include <pcap.h>
          编译选项: cc .. -lpcap –lsocket ..
 
good luck
 

Linux,libpcap,安装测试

博文 来自: baidu_35692628
没有更多推荐了,返回首页