- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux下编写网络抓包程序
清远见嵌入式学院:
Linux 下编写网络抓包程序
作者:曾宏安, 清远见嵌入式学院讲师。
某些时候,我们需要在应用程序中捕获网卡收到的所有数据包并进行分析。为了实现这一功
能,应用程序需要借助底层系统的支持。当今主流的操作系统都提供了一个很强大的功能:允许应
用程序访问数据链路层。
类UNIX 操作系统上提供了三种不同的方式访问数据链路层,分别是BSD 的BSD 分组过滤
器(BPF) 、SVR4 的数据链路提供者接 (DLPI)和Linux 的SOCK_PACKET 接 。幸运的是,程序员
不需要了解这些不同接 的细节,直接使用Libpcap 函数库就可以。
Libpcap 是一个提供了针对网络数据包捕获系统的高层接 的开源函数库。其作用是提供独立
于平台的应用程序接 ,以消除程序中针对不同操作系统所包含的数据包捕获代码模块。这样以来,
就解决了程序移植性的问题,有利于提高开发的效率。
Libpcap 运行于大多数类UNIX 操作系统上,完整的文档和源码可以从tcpdump 的官方网站上
获得: http :// 其Windows 版本 Winpcap 可已从 http :// 获取。下面
介绍如何使用Libpcap 来捕获数据包
char *pcap_lookupdev(char *errbuf);
功能:查找用于捕获数据包的缺省设备
清远见嵌入式学院:
errbuf :错误时保存出错信息
返回值:成功时返回设备名称;出错时返回NULL
pcap_t *pcap_open_live(const char *device, int snaplen, int promisc, int to_ms, char *errbuf);
功能:打开用于捕获数据包的网络设备
device :设备名称
snaplen:要捕获的数据包的最大字节数
prosmic:网络设备工作模式(0 表示非混杂模式,其他值表示混杂模式)
to_ms : 从内核 间复制数据前等待的时间
err_buf :错误时保存出错信息
返回值:成功时返回pcap_t 类型的接 描述符(句柄) ;出错时返回NULL
const u_char *pcap_next(pcap_t *p, struct pcap_pkthdr *h);
功能:捕获下一个数据包
p :接 描述符
h :捕获的数据包的信息
返回值:成功时返回指向捕获的数据的指针;出错时返回NULL
typedef void (*pcap_handler)(u_char *user, const struct pcap_pkthdr *h, const u_char *bytes);
const u_char *pcap_loop(pcap_t *p, int cnt, pcap_handler callback, u_char *user);
功能: 捕获下一个数据包
cnt :要捕获的数据包的个数
callback :捕获到数据包时执行的回调函数
user :传递给回调函数的参数
返回值:成功时返回0;出错时返回-1
清远见嵌入式学院:
int pcap_compile(pcap_t *p, struct bpf_program *fp, char *str, int optimize, bpf_u_int32 netmask);
功能:创建过滤器
p :接 描述符
fp :指向保存过滤器的结构体的指针
str :要转化的过滤规则
optimize : 过滤器是否要优化
netmask:网络掩码
返回值:成功时返回0;出错时返回-1
int pcap_setfilter(pcap_t *p, struct bpf_program *fp);
功能: 安装过滤器
p :接 描述符
fp :指向包含过滤器的结构体的指针
返回值:成功时返回0;出错时返回-1
以下实例代码实现捕获并显示3 个ARP 包
#include stdio.h
#include stdlib.h
#include string.h
#inclu
您可能关注的文档
- ARM学习-RealView MDK+Jlink+TQ2440 调试笔记.doc
- ARM调试之Uboot篇.doc
- ASA remote vpn详细调试.doc
- ARD2选型手册0712.pdf
- AutoCAD基础常识.doc
- ARM在嵌进式系统中的应用.doc
- AutoCAD 指点题1.doc
- AutoCAD应用中罕见题目标剖析与处理.doc
- AutoCAD开发.ppt
- autocad敕令大全.doc
- Unit 6 Get Close to Nauture Lesson 22 -课件-2025-2026学年度北京版英语四年级上册.pptx
- Unit 7 Be Together Lesson 23 -课件-2025-2026学年度北京版英语四年级上册.pptx
- 2025食品饮料行业AI转型白皮书-2025食品饮料行业数智化转型领先实践.pdf
- Unit 7 Be Together Lesson 24 -课件-2025-2026学年度北京版英语四年级上册.pptx
- Unit 7 Be Together Lesson 25 -课件-2025-2026学年度北京版英语四年级上册.pptx
- Unit 7 Be Together Lesson 26 -课件-2025-2026学年度北京版英语四年级上册.pptx
- 2025年广州体育职业技术学院单招职业倾向性考试题库完美版.docx
- 软件公司员工考勤异常处理.doc
- 2025年土地登记代理人之土地登记相关法律知识题库500道及完整答案【有一套】.docx
- 2025年四平职业大学单招职业适应性考试题库含答案.docx
最近下载
- 深入贯彻中央八项规定精神学习教育知识测试题库(含答案)_可有哪些信誉好的足球投注网站.pdf VIP
- 飞行控制系统(FCS)系列:Honeywell Primus Epic_(5).自动飞行控制功能.docx VIP
- 瘦终端thinos安装使用手册.pdf VIP
- 飞行控制系统(FCS)系列:Honeywell Primus Epic_(8).飞行仪表显示与界面.docx VIP
- 施工升降机拆除作业安全技术交底完整版.doc VIP
- 《脑淀粉样血管病》课件 .ppt VIP
- 飞行控制系统(FCS)系列:Honeywell Primus Epic_(12).安全与合规性要求.docx VIP
- 雕塑艺术行业发展预测分析.docx
- 新员工三级安全培训考试试题(含答案).docx VIP
- 高中新教材历史选择性必修一课件单元整合.pptx VIP
文档评论(0)