libpcap是一个网络数据包捕获函数库,功能非常强大,Linux下著名的tcpdump就是以它为基础的。我们可以利用它来完成自己的sniffer。
1.安装
下载最新版本的libpcap,下载地址:https://www.winpcap.org/install/
解压缩libpcap-1.5.3.tar.gz
./configure
make
sudo make install
2.测试
写一个简单的例子测试一下安装是否成功,代码如下:
#include <pcap.h>
#include <stdio.h>
int main()
{
char errBuf[PCAP_ERRBUF_SIZE], * device;
device = pcap_lookupdev(errBuf);
if(device)
{
printf("success: device: %s\n", device);
}
else
{
printf("error: %s\n", errBuf);
}
return 0;
}
~
这里需要注意的是,编译时候需要添加-lpcap项,不然编译会出现如下错误:
(.text+0x14): undefined reference to `pcap_lookupdev’
collect2: ld 返回 1
正确的编译命令如下:
gcc test.c -o test -lpcap
编译通过后,执行此程序,会显示出当前网卡
来源:CSDN
作者:bubbleyang
链接:https://blog.csdn.net/bubbleyang/article/details/103929127