pcap是什么文件,手机查看pcap文件

手机查看pcap文件针对网络接口、端口和协议的数据包截取 。假定你要截取网络接口eth1,端口号6881的tcp数据包 。数据文件保存为test.pcap 。
tcpdump -w test.pcap -i eth1 tcp port 6881
很简单吧?如果要同时截取udp端口号33210和33220的数据包呢?
tcpdump -w test.pcap -i eth1 tcp port 6881 or udp \( 33210 or 33220 \)
'\'是转义字符,逻辑符号OR是加(+)的意思 。其他表达式是截取端口号6881的tcp包加上端口号33210和33220的UDP包 。tcpdump过滤表达式的and运算符是交集的意思,因此截取端口号33210和33220的UDP包使用 or 而不是 and 。and运算符的用法在下文描述 。
怎样保存文件读取数据包呢?
tcpdump -nnr test.pcap
选项 -nn 不把网络IP和端口号转换成名字,r(read)读取包 。
可以添加 -tttt 选项使时间戳格式更加可读 。
tcpdump -ttttnnr test.pcap
怎样针对IP截取数据?
需向tcpdump指明IP类型,目的IP还是源IP?比如要嗅探的目的IP为10.168.28.22,tcp端口号22 。
tcpdump -w test.pcap dst 10.168.28.22 and tcp port 22
目的IP和端口的交集(intersection) , 使用and运算符 。
嗅探数据包大小缺省为96 bytes,可以指定 -s 改变缺省值 。
tcpdump -w test.pcap -s 1550 dst 10.168.28.22 and tcp port 22
有些版本的tcpdump允许指定端口范围,下述指令为针对一定端口范围截取数据 。
tcpdump tcp portrange 20-24
注意,上述指令没有指定 -w 把截取的数据包保存到文件而是直接输出到屏幕 。

pcap是什么文件,手机查看pcap文件

文章插图
pcap包的大小就是流量总和吗是 。PCAP文件是一种网络数据包捕获文件格式 , 记录了网络通信中通过网络接口传输的数据包内容 。每个数据包都有其自己的大小 , 数据包的大小可以通过捕获软件或工具进行测量和记录,因此pcap包的大小就是流量总和 。
pcap是什么文件,手机查看pcap文件

文章插图
c语言以二进制方式打开文件pcap是数据报的存储格式,需要使用pcap相关的结构体进行数据的写入 。
具体使用方法如下面的代码 。
int test{
/* ... ...*/
pcap_dumper_t *pdumper;
pcap_t *handler;
handler = pcap_open_dead(1, 65535); /* 不限制包的长度 */
pdumper = pcap_dump_open(handler, pcap_path); /* handler是函数内部malloc的,查看了下源代码没有释放,所以还是需要调用者释放的 */
if(handler){
free(handler);
handler = NULL;
}
struct pcap_pkthdr hdr;
hdr.ts.tv_sec = 0;
hdr.ts.tv_usec = 0;
DataUnit *p = ptr_head;
int len = 0;
int loop_count = 0;
char sessid[SESSLEN+1] = {0};
/* 获取文件中的第一个会话id */
memcpy(sessid, p->sessid, strlen(p->sessid));
sessid[strlen(p->sessid)] = '\0';
int count_len = 0;
char *buf = NULL;
/* 构造数据包结束标识 */
char end_flag[SESSLEN + 1];
loop_count = 0;
while(loop_count end_flag[loop_count] = 'F';
loop_count++;
}
end_flag[SESSLEN] = '\0';
loop_count = 500;
// while((strcmp(sessid ,p->sessid) == 0) && (count_len++ while((count_len++ if(strcmp(p->sessid, end_flag) == 0)
break;
len = (p+1)->offset - p->offset;
printf("packet len = %d
", len);
buf = (char*)malloc(len+1);
if(NULL == buf)
goto err_exit_free;
memcpy(buf, ptr_read + p->offset, len);
/* 构造数据包头 */
hdr.caplen = len;
hdr.len = len;
/* 数据包写入 */
pcap_dump((u_char*)pdumper, &hdr, buf);
free(buf);
buf = NULL;
p++;
}
/* 清空缓冲区 */
pcap_dump_flush(pdumper);
pcap_dump_close(pdumper);
/* ... ...*/
}
pcap是什么文件,手机查看pcap文件

文章插图
windows中文件名是什么一.Winpcap简介
Winpcap是UNIX下的libpcap移植到windows下的产物,他是一个free
and
open
source的项目 。Winpcap工作于驱动(Driver)层 , 所以能以很高的效率进行网络操作 。
Winpcap提供了以下强大的功能:
1.捕获原始的数据包
2.设置filter,只捕获自己敢兴趣的数据包
3.方便的把捕获的数据包输出到文件和从文件输入
4.发送原始的数据包
5.统计网络流量
6.…..(其它还有很多,我不知道了)
二.Winpcap的安装使用方法
1.到
下载winpcap的安装包,程序员开发包 。
2.执行安装包,这样你的机子就能运行winpcap程序了
3.解压开发包,在VC的option的include和lib中加入winpcap的
include和lib
4.
在你的程序中加入#include
,
#include
.然后在工程的setting中加入预定义宏:WPCAP,HAVE_REMOTE.导入wpcap.lib库
5.就可以编写wpcap程序了
三.Winpcap的一些基本的功能的实现
一)捕获数据包
1.
枚举所有的可用的设备[pcap_findalldevs_ex](可?。?
2.
通过名字打开一个设备[pcap_open()]
在这里可以打开一个文件,只是在打开这个文件之前需要通过pcap_createsrcstr创建相应的name
string
3.
设置Filter[pcap_compile,
pcap_setfilter]
(可选)
4.
捕获数据
有几种捕获数据的方法(捕获数据的数据都是最原始的数据包,即包含数据链路层的数据头)
pcap是什么文件,手机查看pcap文件

文章插图
【pcap是什么文件,手机查看pcap文件】


    特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。