现在的位置: 首页 > 综合 > 正文

Libcap的安装

2013年10月20日 ⁄ 综合 ⁄ 共 2334字 ⁄ 字号 评论关闭

Libcap
的安装

                                                                                                        长春工业大学 张振虎

Libpcap
简介

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

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

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

  Libpcap
应用程序框架

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

  Libpcap
软件包可从
http://www.tcpdump.org/

下载,然后依此执行下列三条命令即可安装,但如果希望libpcap
能在linux
上正常工作,则必须使内核支持"packet"
协议,也即在编译内核时
打开配置选项 CONFIG_PACKET(
选项缺省为打开)

  ./configure

  ./make

  ./make install

  libpcap
源代码由20
多个C
文件构成,但在 Linux
系统下并不是所有文件都用到。可以通过查看命令make
的输出了解实际所用的文件。本文所针对的libpcap
版本号为1.1.1
,网络类型为常规以太网。Libpcap
应用程序从形式上看很简单.

  

Libpcap
安装

以下命令适用于
ubuntu

deb
包管理式
linux
系统,如果是
Fedora

RedHat
以及
SUSE
等基於
RPM


包管理的
linux
系统可用
yum
install

代替

apt-get install

1.                


安装
gcc g++
编译器


命令:

sudo apt-get install
build-essential

C
语言经典的入门例子是 *Hello World
,下面是一示例代码:
#include <stdio.h>
  int main(void)
{
printf("Hello, world!/n");
return 0;
}

我们假定该代码存为文件‘hello.c’


要用 编译该文件,使用下面的命令: $ gcc -Wall hello.c -o hello

该命令将文件‘hello.c’
中的代码编译为机器码并存储在可执行文件 ‘hello’
中。

机器码的文件名是通过 选项指定的。该选项通常作为命令行中的最後一个参数。如果被省略,输出文件默认为
‘a.out’

。 如果当前目录中与可执行文件重名的文件已经存在,它将被复盖。 选项 开启编译器几乎所有常用的警告──
。 编译器有很多其他的警告选项,但 是最常用的。默认情况下GCC
不会产生任何警告信息。当编写 C
C++
程序时编译器警告非常有助于检测程序存在的问题。 本例中,编译器使用了
选项而没产生任何警告,因为示例程序是完全合法的。

要运行该程序,输入可执行文件的路径如下: $ ./hello Hello, world!

这将可执行文件载入内存,并使 CPU
开始执行其包含的指令。 路径 指代当前目录,因此 载入并执行当前目录下的可执行文件 ‘hello’

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.
运行
ldconfig
,至此完成。


简单的例子测试一下libpcap

//device.c
#include <stdio.h>
int main(int argc,char *argv[])
{
char *dev,
errbuf[PCAP_ERRBUF_SIZE];
dev=pcap_lookupdev(errbuf);
if(dev==NULL)
{
printf(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

QT creator
中使用libpcap

编写代码时在头文件中引入
pcap.h
即可
.
编译时需要在
.pro
工程文件中加入选项

 

LIBS  
+= -L/usr/local/lib
/                

                  
        
-lpcap

 

抱歉!评论已关闭.