Ubuntu16.04下安装了Wireshark的话,应该是已经安装了libpcap0.8的包,如下图:
使用sudo apt-get install libpcap-dev安装开发包,安装后系统显示如下图:
多了libpcap0.8-dev和libpcap-dev两个包。
工作可能截取的数据包文件(pcap文件)含有一些重要的数据包,这时我们需要把他们提取出来保存到新的数据包文件(pcap文件)中。比如下面图片中只需要dns协议的数据包
直接贴代码了,如果api不知道怎么用的,直接使用man就行了;注意过滤表达式使用“udp port 53”,不要使用“dns”编译过滤表达式的时候会出错,提示语法错误。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <pcap/pcap.h>
pcap_t *source_pcap_t=NULL;
pcap_dumper_t *des_pcap_dumper_t=NULL;
int exit_main()
printf("exit_main() is called.\n");
if( NULL!=source_pcap_t )
pcap_close(source_pcap_t);
if( NULL!=des_pcap_dumper_t )
pcap_dump_close(des_pcap_dumper_t);
exit(0);
int main(int argc, char *argv[])
//打开要处理pcap文件
char errbuf[PCAP_ERRBUF_SIZE]={0};
if( NULL==(source_pcap_t=pcap_open_offline(argv[1], errbuf)) )
printf("pcap_open_offline() return NULL.\nerrbuf:%s\n", errbuf);
exit_main();
//打开保存的pcap文件
if( NULL==(des_pcap_dumper_t=pcap_dump_open(source_pcap_t,"./rescult.pcap")) )
printf("pcap_dump_open() fail.\n");
exit_main();
//判断链路层类型
int datalink_offset=0;
//pcap_datalink() returns the link-layer header type for the live capture or ``savefile'' specified by pcap_t
int datalink_type=pcap_datalink(source_pcap_t);
switch (datalink_type)
case PCAP_ERROR_NOT_ACTIVATED:
printf("pcap_datalink() return PCAP_ERROR_NOT_ACTIVATED.\n");
exit_main();
break;
case DLT_NULL:
printf("Data Link Type:BSD loopback.\n");
datalink_offset=4;
break;
case DLT_EN10MB:
printf("Data Link Type:IEEE 802.3.\n");
datalink_offset=14;
break;
case DLT_PPP:
printf("Data Link Type:PPP.\n");
datalink_offset=0;
break;
case DLT_FDDI:
printf("Data Link Type:FDDI.\n");
datalink_offset=21;
break;
case DLT_IEEE802_11:
printf("Data Link Type:IEEE 802.11.\n");
datalink_offset=22;
break;
case DLT_PPP_ETHER:
printf("Data Link Type:PPPoE.\n");
datalink_offset=20;
break;
default :
printf("Data Link Type:UnKnown.\n");
printf("datalink_offset:%d\n", datalink_offset);
//设置过滤表达式
struct bpf_program filter;
if( -1==pcap_compile(source_pcap_t, &filter, "udp port 53", 1, 0) )
printf("pcap_compile() fail.\n");
printf("errno:%s\n", pcap_geterr(source_pcap_t));
exit_main();
if( -1==pcap_setfilter(source_pcap_t, &filter) )
printf("pcap_setfilter() fail.\n");
exit_main();
//网络层
struct pcap_pkthdr packet;
const u_char *pktStr;
while(1)
pktStr=pcap_next(source_pcap_t, &packet);
if( NULL==pktStr )
printf("pcap_next() return NULL.\n");
break;
printf("Packet length: %d\n", packet.len);
printf("Number of bytes: %d\n", packet.caplen);
printf("Recieved time: %s\n", ctime((const time_t *)&packet.ts.tv_sec));
//读到的数据包写入生成pcap文件
pcap_dump((u_char*)des_pcap_dumper_t, &packet, pktStr);
pcap_dump_close(des_pcap_dumper_t);
pcap_close(source_pcap_t);
return 0;
下面图片是生成的rescult.pcap的结果,把dns的数据包全部取出来了。
提供一个libpcap的开发文档:
http://download.csdn.net/download/singleyellow/10004064
1.官网下载安装包:http://www.tcpdump.org/#latest-release2.开始配置cd libpcap-1.9.0./configure报错1:configure: erro...
来自:
火星人
这两天公司里要我了解一下pcap,但是还不知道它是干什么的。首先,我从网上查到了,pcap实际上是抓包库。这个抓包库给抓包系统提供了一个高层次的接口。所有网络上的数据包,甚至是那些发送给其他主机的,通...
来自:
cfjtaishan的专栏
工作需要,要对pcap文件中的数据包进行过滤,只保留普通端口的TCP、UDP数据包。结果如下图代码如下:#include <stdio.h>#include <...
来自:
singleyellow的博客
参考:在ubuntu下安装libpcap库https://blog.csdn.net/cfjtaishan/article/details/7096085Ubuntu16.04安装libpcap开发库...
来自:
lzp_k2的专栏
WinPcap和Libpcap的最强大的特性之一,是拥有过滤数据包的引擎。 它提供了有效的方法去获取网络中的某些数据包,这也是WinPcap捕获机制中的一个组成部分。 用来过滤数据包的函数是 pcap...
来自:
脱离了低级趣味的流氓
1.Libpcap简介 Libpcap是Packet Capture Libray的英文缩写,即数据包捕获函数库。该库提供的C函数接口用于捕捉经过指定网络接口的数据包,该接口应该是被设为混杂模式。这...
来自:
weixin_34400525的博客
Linux下libpcap的安装一、 安装过程参照以下步骤: 1、打开网址:www.tcpdump.org/ 下载 libpcap-1.0.0.tar.gz (512.0KB) 软件包,通过命令 ta...
来自:
Ahuageyuanquan的专栏
一、 安装过程参照以下步骤(以下所安装的版本为旧版本蓝色标出,可以自行选择新版本): 1、打开网址:www.tcpdump.org/ 下载 libpcap-1.0.0.tar.gz (512.0KB)...
来自:
yu314092706的专栏
最近参加了一个实训项目,是把一个WireShark抓到的pcapng文件用libpcap库还原成原始的TS流,需求分析弄了一天,安装环境用了一天,接下来再开始写代码,让我们一起完成这个项目吧。首先是安...
来自:
NCU_CirclePlan的博客
最近编写库文件的时候。出现了很多警告和错误,几乎都是关于没有安装libpcap库的原因。针对于centos系统安装libpcap库命令:yum install libpcapyum install l...
来自:
zby枣菠鱼的博客
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中...
来自:
ylinlinlin的博客
做毕业设计需要用到libpcap来抓包,借此次机会完整记录下自己的安装过程,前人种树后人乘凉。到libpcap官网去下载最新的源码包,下载完成后tar -xzf 文件.tar.gz 解压,于是我们可以...
来自:
JPLAY的博客
转自:http://imzc.net/archives/181/%E8%A7%A3%E6%9E%90pcap%E6%96%87%E4%BB%B6%E5%8F%8A%E6%BA%90%E7%A0%81/...
来自:
xfxf996的博客
从我的网易博客移动。。libpcap 是unix/linux 平台下的网络数据包捕获函数包, 大多数网络监控软件都以它为基础。 Libpcap 可以在绝大多数类unix 平台下工作. Libpc...
来自:
做简单的事,做简单的教程
这是一个快速安装libpcap的shell脚本 运行 sudo add_libpcap.sh 在运行中会在桌面上暂时的新建一个libpcap_dir的文件夹,用来暂时存放所有的文件,在安装完成后会删除
在Ubuntu下编写pcap的抓包程序,得到的分析结果有不少问题,小弟刚刚接触网络编程,许多地方认识不是很深,高手帮帮忙!谢谢! 主函数: #include <pcap.h> #include <st
因为工作需要处理pcap 文件 ,所以 对其进行了解析~废话不多说,直接上代码 main.cpp #include "pcap.h" #include "method.hpp" #include <i
<p>Trying to cross compile my go app for mips.</p>
<pre><code>GOOS=linux GOARCH=mipsle go build ./
</code></pre>
<p>However, I get the following issues:</p>
<pre><code># github.com/google/gopacket/afpacket
/root/go/src/github.com/google/gopacket/afpacket/options.go:176:19: undefined: pageSize
/root/go/src/github.com/google/gopacket/afpacket/options.go:177:85: undefined: pageSize
# github.com/google/gopacket/pcap
/root/go/src/github.com/google/gopacket/pcap/pcap.go:30:22: undefined: pcapErrorNotActivated
/root/go/src/github.com/google/gopacket/pcap/pcap.go:52:17: undefined: pcapTPtr
/root/go/src/github.com/google/gopacket/pcap/pcap.go:64:10: undefined: pcapPkthdr
</code></pre>
<p>What's the actual issue here? Is there some architecture limitations in <code>gopacket</code> that prevents me from building it for mips?</p>
1.下载相关文件,解压到桌面2.取得管理员权限 sudu su3../configuremakesudo make install4.异常处理./configure结束会报错错误为:configure...
来自:
DoraemonHui的博客
1.官网下载安装包:http://www.tcpdump.org/#latest-release2.解压3.终端进入文件夹cd libpcap-1.9.0/4.安装依赖关系sudo apt-get i...
来自:
weixinhum
1.从 ftp://ftp.gnu.org/gnu/下载最新版本flex、bison、GNU M4、libpcap安装包。链接如下:ftp://ftp.gnu.org/gnu/bison/ftp://...
来自:
夕小瑶的卖萌屋
1, 环境: Ubuntu14.04 + libpcap-1.6.1.tar.gz2,Libpcap下载: 官方地址-http://www.tcpdump.org/#latest-release 即可...
来自:
xuguokun1986的博客
Firstapt-get install libpcap0.8-dev to install libpcapsudo apt-get install libcap-devSecond sudo apt...
来自:
TheKingOfNight的博客
1, 环境: Ubuntu10.04 + libpcap-1.4.0.tar.gz2,Libpcap下载: 官方地址-http://www.tcpdump.org/#latest-release 即可...
来自:
学无止境
参考自此文章过程:1.到 http://www.tcpdump.org 网站下载 libpcap, 我下载的是libpcap1.8.1.gz ,在目录/tmp/libpcap1.8.1下。2.在命令行...
来自:
Wow的博客
libpcap使用libpcap是一个网络数据包捕获函数库,功能非常强大,Linux下著名的tcpdump就是以它为基础的。今天我们利用它来完成一个我们自己的网络嗅探器(sniffer)首先先介绍一下...
来自:
htttw的专栏
onfigure: error: Your operating system's lex is insufficient to compile libpcap. flex is a lex repla
我用sudo apt-get install命令安装了gcc,m4,flex和bison 之后我查阅一些资料说:全面四步完成后,就可以使用下面三个指令安装libpcap环境: ./configure
Ubuntu下libpcap的安装和测试通过官方提供的资料可以了解安装的基本环境:To compile the libpcap library, your Unix distribution must...
来自:
阿木的专栏
闲着没事到LeetCode上做做SQL的题目,结果被卡了半天。Write a SQL query to get the second highest salary from the Employee ...
来自:
Bpazy的博客
Given two strings S1 and S2, S = S1 - S2 is defined to be the remaining string after taking all the ...
来自:
weixin_30340617的博客
前段时间一直在研究OpenRCE的sulley框架,在艰难安装过程也顺便安装了pcapy,突然发现网上对pcapy的解释说明不是很全,所以在此整理和详细说明一下pcapy的安装过程,希望能帮助大家!测...
来自:
CuteKe的专栏
1、安装GCC (ubuntu默认安装了GCC)命令:sudo apt-get install build-essential2、编译GNU M4这个是编译flex必备的环境,否则会提示“GNU M4...
来自:
qq_16742389的博客
环境为Ubuntu10.10+libpcap-1.1.1.tar.gz1、Libpcap下载 Libpcap的官方网站是http://tcpdump.org/release,可以从该网站下载最新版本...
来自:
mzlqh的专栏
Reverse Linked ListDifficulty:Easy Reverse a singly linked list. 反向单链表。 Hint: A linke...
来自:
Bpazy的博客
持续更新。。。。。。2.1斐波那契系列问题2.2矩阵系列问题2.3跳跃系列问题3.1 01背包3.2 完全背包3.3多重背包3.4 一些变形选讲2.1斐波那契系列问题在数学上,斐波纳契数列以如下被以递...
来自:
hebtu666
Python代码实现访问Virus...
qq_37717661:
请问下virustotal怎么注册,在这个注册页面填写信息,https://www.virustotal.com/gui/join-us,返回bad request。
CPU是大小端存储的决定因素
qq_43513505:
这个链接里,有如何判断大小端的代码,但正确性未经验证,楼主可以参考
https://stackoverflow.com/questions/29487925/opencv-how-to-read-pfm-files
怎样在Ubuntu16.04上安装...
MendyMeng:
pkg-config --version
FindResourceA( )函数
singleyellow:
[reply]qq_24252897[/reply]
应该是和fopen( )有区别的,更像是fopen( )的封装或者说是更高一层的调用;ELF格式和PE格式还是有区别的,印象中ELF格式没有资源这种说法,不过你可以在linux系统中man一下,看看ELF格式的定义。