博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个简单的网络抓包程序
阅读量:5876 次
发布时间:2019-06-19

本文共 1357 字,大约阅读时间需要 4 分钟。

hot3.png

#include
#include
#include
#include
#define MAXBYTES2CAPTURE 2048void ProcessPacket(u_char *arg,const struct pcap_pkthdr *pkthdr,const u_char *packet){ int i = 0; int *counter = (int *)arg; printf("Packet Count %d\n",++(*counter)); printf("Recveived Packet Size :%d\n",pkthdr->len); printf("Rayload:\n"); for(i=0;i< pkthdr->len;i++) { printf("%02x ",(unsigned int)packet[i]); if((i%16 == 15 && i != 0) || (i == pkthdr->len - 1)) printf("\n"); printf("\n\n******************************\n"); return ; }}int main(int argc,char * argv[]){ int i = 0,count = 0; pcap_t *descr = NULL; char errbuf[PCAP_ERRBUF_SIZE],*device = NULL; bpf_u_int32 netaddr = 0,mask = 0; struct bpf_program filter ; memset(errbuf,0,sizeof(errbuf)); if(argc != 2) device = pcap_lookupdev(errbuf); else device = argv[1]; printf("Try to open device %s\n",device); if((descr = pcap_open_live(device,MAXBYTES2CAPTURE,1,0,errbuf)) < 0 ) { printf("error :%s\n",errbuf); exit(-1); } pcap_lookupnet(device,&netaddr,&mask,errbuf); if(pcap_compile(descr,&filter,"arp and ether host 00:0c:29:3f:f4:c7",0,mask) < 0)//you own HWaddr { printf("pcap_compile error\n"); exit(-1); } pcap_setfilter(descr,&filter); pcap_loop(descr,2,ProcessPacket,(u_char *)&count); return 0;}

转载于:https://my.oschina.net/u/130360/blog/71875

你可能感兴趣的文章
svn文件管理器的使用
查看>>
Ansible playbook 使用
查看>>
for/foreach/linq执行效率测试
查看>>
js /jquery停止事件冒泡和阻止浏览器默认事件
查看>>
杭电1698--Just a Hook(线段树, 区间更新)
查看>>
SVN被锁定解决办法
查看>>
我的博客园定制样式
查看>>
长春理工大学第十四届程序设计竞赛(重现赛)I.Fate Grand Order
查看>>
技术网站
查看>>
掩膜操作手写+API(第二天)
查看>>
退圈停更
查看>>
golang实现RSA加密解密
查看>>
【leetcode】235. Lowest Common Ancestor of a Binary Search Tree
查看>>
Wireshark 如何捕获网络流量数据包
查看>>
day6 shelve模块
查看>>
好作品地址
查看>>
[翻译]Protocol Buffer 基础: C++
查看>>
runloop与线程的关系
查看>>
[Bzoj2246]迷宫探险(概率+DP)
查看>>
[译] 感受 4px 基线网格带来的便利
查看>>