Ubuntu下使用libcap抓包的实现

时间:2026-02-15 12:38:36

1、编译安装m4-1.4.17,下载m4-latest.tar.gz(),解压。这个是编译flex必备的环境,否则会提示“GNU M4 1.4 is required”的错误。找到该解压文件,使用命令cd m4-1.4.17进入,在该文件夹下依次执行命令进行编译安装:

./configure,

sudo make,

sudo make install.

2、下载flex。没有flex,直接安装libpcap会提示“Your operating system's lex is insufficient to compile libpcap”错误。

同样的方法安装flex。找到解压后的文件夹,使用命令cd flex-2.5.37进入,在该文件夹下依次执行命令:

./configure,

sudo make,

sudo make install.

Ubuntu下使用libcap抓包的实现

3、安装bison。在安装flex后直接安装libpcap会提示“don't have both flex and bison;reverting to lex/yacc”错误,前面安装的是flex,就需要搭配bison。与上面同样的方法安装。

./configure,

sudo make,

sudo make install.

Ubuntu下使用libcap抓包的实现

4、安装libcap。

官网下载libcap,解压后,进入解压文件夹,执行:

./configure,

sudo make,

sudo make install.

Ubuntu下使用libcap抓包的实现

1、编写代码test.c,调用libcap的接口进行抓包,text.c头文件:

#include <stdio.h>

#include <pcap.h>

#include <stdlib.h>

#include <time.h>代码如图所示。

Ubuntu下使用libcap抓包的实现

2、编译sniffex.c文件。命令:

gcc -g -Wall -o sniff  sniffex.c -lpcap(将文件sniffex.c编译后取名为sniff。)

编译成功后若直接运行:sudo ./sniff,则出现图中的错误提示。

Ubuntu下使用libcap抓包的实现

3、问题解决:执行下一步的ln进行链接。

找到libcap:命令为sudo whereis libpcap

Ubuntu下使用libcap抓包的实现

4、执行命令(该命令把libcap目录中的pcap文件夹到 /usr/include 下。并且到 /usr/lib/ 把libpcap.so.1.1.1文件 重命名为:libpcap.so.1)。

Ubuntu下使用libcap抓包的实现

5、然后执行:sudo ./test,进行抓包。test是.c文件编译后的可执行文件。

保存抓包到file.txt中:

sudo ./sniff eth0 >file.txt,同样,sniff是.c文件编译后的可执行文件。

若要将抓到的包保存到一个.txt文件中,使用命令:sudo ./sniff eth0 >file.txt

© 2026 五度知识库
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com