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

 

### 回答1: compat-libcap1是一个软件库,用于在运行Linux操作系统的计算机上提供对libcap库的向下兼容性支持。libcap库允许普通用户以非特权身份运行特定的系统管理任务,而不需要完全提升为管理员身份。 在某些情况下,一些旧版本的软件或应用程序可能依赖于旧版的libcap库进行正常运行。然而,随着时间的推移,新版本的libcap库可能会引入一些不兼容的更改,使得旧版的软件无法在新的库中正常工作。 为了解决这个问题,compat-libcap1被开发出来,它提供了旧版本的libcap库的接口和功能,并与新版本的libcap库共存。通过安装compat-libcap1库,旧版的软件可以继续在新版的Linux操作系统上正常运行,而无需修改现有的代码或重新编译软件。 需要注意的是,使用compat-libcap1库可能会存在一些安全风险。旧版的libcap库可能包含已知的漏洞或安全问题,因此在部署中应该谨慎使用,并加强其他安全措施以保护系统的安全性。 总的来说,compat-libcap1是一个用于提供对旧版本libcap库向下兼容性支持的软件库,它允许旧版的软件在新版的Linux系统上继续正常运行,但需要谨慎考虑安全性问题。 ### 回答2: compat-libcap1是一个用于兼容性的库,用于在较新的系统中支持较旧的libcap版本。libcap是一个Linux内核的功能,用于在运行权限受限的程序时控制其对系统资源的访问。然而,随着时间的推移,libcap的版本不断更新,导致旧版程序不能兼容新版本的libcap。为了解决这个问题,compat-libcap1应运而生。 compat-libcap1的作用是允许在新的系统上运行旧版本的程序,并提供与这些程序所需的旧libcap版本的API和功能的兼容性。这可以确保旧版本程序在新系统上正确运行,并且可以使用libcap提供的资源控制功能。 要使用compat-libcap1,首先需要在系统上安装该库。然后,将旧版本的程序与compat-libcap1进行链接,以便程序可以正确地调用libcap的函数。通过这种方式,可以用较低版本的libcap来代替较高版本的libcap,以实现兼容性。 需要注意的是,compat-libcap1只是一个过渡性的解决方案,用于确保旧版本的程序在新系统上能够正常运行。随着时间的推移,建议更新旧版本的程序,使其能够适应新版本的libcap,从而减少对compat-libcap1的依赖性。 总之,compat-libcap1是一个用于兼容性的库,用于在新的系统上支持旧版本的libcap,以确保旧版本程序能够正常运行并使用libcap的资源控制功能。 ### 回答3: compat-libcap1是一个用于兼容性的库,它在Linux操作系统中提供了对libcap库的支持。libcap库的主要功能是提供对系统进程的特权访问控制,即控制进程在内核层面拥有哪些权限。但是,一些较旧版本的应用程序或软件可能还依赖于旧版本的libcap库,而新版本的Linux操作系统可能不再支持这些旧版本库。 为了解决这个兼容性问题,开发者创建了compat-libcap1库。这个库提供了与旧版本libcap库相同的功能和接口,使得那些仍然依赖于它的应用程序能够在较新的Linux操作系统上继续运行。 通过安装compat-libcap1库,用户可以确保这些旧版本应用程序可以在现代的Linux发行版上无缝运行。这种兼容性的支持对于那些使用旧版本软件的用户来说非常重要,它们可以继续使用他们喜欢的旧版本软件而无需更换整个操作系统。 总之,compat-libcap1提供了对libcap库的兼容性支持,使得那些仍然依赖于旧版本库的应用程序能够在较新的Linux操作系统上继续正常运行。它保证了用户在使用旧版本软件的同时,无需更换整个操作系统。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值