Libcap的安装

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

 

### 安装 libcap 库的方法 在 Ubuntu 系统中安装 `libcap` 库可以通过多种方式实现,具体取决于系统的版本以及需求场景。以下是详细的说明: #### 方法一:通过 APT 包管理器安装 对于大多数基于 Debian 的发行版(如 Ubuntu),可以直接使用 APT 包管理器来安装 `libcap` 及其开发头文件。 执行以下命令可以完成安装: ```bash sudo apt update sudo apt install libcap-dev ``` 上述命令会自动更新软件源列表并安装 `libcap` 开发库及其依赖项[^1]。 #### 方法二:手动编译安装 如果系统无法通过 APT 正常获取到所需的 `libcap` 版本,则可以选择从源码进行编译和安装。以下是操作流程: 1. **下载源码** 访问官方网站或其他可信资源站点下载最新版本的 `libcap` 压缩包。例如: ```bash wget https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.65.tar.xz ``` 2. **解压压缩包** 使用以下命令解压已下载的文件: ```bash tar -xf libcap-2.65.tar.xz cd libcap-2.65 ``` 3. **配置与编译** 执行以下命令以完成编译过程: ```bash ./configure make sudo make install ``` 此方法适用于需要特定功能或更高版本的情况[^3]。 #### 注意事项 - 如果遇到任何错误提示,请确认是否缺少必要的构建工具链(如 GCC 编译器)。可通过运行 `sudo apt install build-essential` 来解决。 - 对于多语言环境支持,在某些情况下可能还需要调整本地化设置。可参考类似的区域设定步骤[^4]。 --- ### 总结 无论是通过简单的 APT 软件包管理系统还是复杂的自定义编译路径,都可以成功部署 `libcap` 到目标环境中去满足应用需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值