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,

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

4、安装libcap。
官网下载libcap,解压后,进入解压文件夹,执行:
./configure,
sudo make,

1、编写代码test.c,调用libcap的接口进行抓包,text.c头文件:
#include <stdio.h>
#include <pcap.h>
#include <stdlib.h>

2、编译sniffex.c文件。命令:
gcc -g -Wall -o sniff sniffex.c -lpcap(将文件sniffex.c编译后取名为sniff。)
编译成功后若直接运行:sudo ./sniff,则出现图中的错误提示。

3、问题解决:执行下一步的ln进行链接。
找到libcap:命令为sudo whereis libpcap

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

5、然后执行:sudo ./test,进行抓包。test是.c文件编译后的可执行文件。
保存抓包到file.txt中:
sudo ./sniff eth0 >file.txt,同样,sniff是.c文件编译后的可执行文件。
若要将抓到的包保存到一个.txt文件中,使用命令:sudo ./sniff eth0 >file.txt