winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。

要使用WinPcap,需要:Winpcap程序员开发包和Winpcap驱动安装包

ARP包被封装在以太网数据帧里,我所用的以太网环境是Ethernet II即DIX 2.0,是Xerox与DEC、Intel在1982年制定的以太网标准帧格式,Cisco名称为:ARPA。一个这样的以太网数据帧由以下几部分组成:

ff ff ff ff ff ff是物理的广播地址 是我的MAC地址; 08 06 表示ARP协议;00 01表示以太网

1)前导字符,在每种格式的以太网帧的开始处都有64比特(8字节)的前导字符,其中,前7个字节称为前同步码(Preamble),内容是16进制数 0xAA,最后1字节为帧起始标志符0xAB,它标识着以太网帧的开始。前导字符的作用是使接收节点进行同步并做好接收数据帧的准备。

以太网传输层(并不是用户需要访问的):

2)目标MAC,共6字节,表示该数据帧被局域网中哪台主机接收。

3)源MAC,共6字节,表示该数据帧发出方的MAC。

4)类型,共2字节,标识出以太网帧所携带的上层数据类型,ether_type$ADDRESS_RESOLUTION  其中:

1536 XEROX NS IDP

2048 Internet 协议 (IP)

2049 X.752050NBS

2051 ECMA

2053 X.25第3层

2054 ARP    (0x0806) 2055 XNS

4096 伯克利追踪者

21000 BBS Simnet

24577 DEC MOP 转储/装载

24578 DEC MOP 远程控制台

24579 DEC 网 IV 段

24580 DEC LAT

24582 DEC

32773 HP 探示器

32821 RARP

32823 Apple Talk

32824 DEC 局域网桥

如果使用Winpcap抓ARP包,那么抓到的包中这两字节应该都是0x0806即十进制2054,表该帧承载一个ARP包,Winpcap就以这两个自己来是别一个包属于那种包(如果捕TCP或者UDP包,那么这两个字节应该是2048,因为TCP和UDP等等很多协议都属于IP族的协议)。

以太网包数据:

5)数据,长度为46-1500字节,数据包的内容。对于ARP包,它应该是:

a)硬件地址类型,2字节,为1时表示以太网,为6表示令牌环网格式等等。

b)协议地址类型,2字节,同以太网帧的各种取值情况,因为ARP一般负责MAC和IP地址间的转换,所以这两个字节一般固定取0x0800。

c)硬件地址长度,1字节,表MAC地址的长度,一般取6.

d)协议地址长度,1字节,表协议地址的长度,这跟b)中指定的协议类型有关,ip协议地址为4字节,所以一般也固定取4.

e)操作码,2字节,表示该ARP包的用意,为1时表示已知IP地址查询MAC,如上图中第一个报文,

为2时表示应答一个IP地址对应的MAC,上图第二个报文。

f)发送者硬件地址,长度由c)指定

g)发送者协议地址,长度由d)指定

h)目的方硬件地址,长度由c)指定

i)目的方协议地址,长度由d)指定

6)验证码,是4个字节的帧校验序列(Frame Check Sequence,FCS),采用32位CRC循环冗余校验对从"目标MAC地址"字段到"数据"字段的数据进行校验。

如果用Winpcap抓取ARP包,只能抓到从2)、3)、4)、5)的内容。用Winpcap抓到长度为42字节的包,小于6+6+46的最小值

mysql winpcap_WinPcap使用小结(一)相关推荐

  1. shell mysql awk_shell mysql 处理数据小结

    shell mysql 处理数据小结,shell中子进行变量的传递看了好久.. 学习一下另一种思维方式 [root@ccsafe cc]# cat productinfo.sh #!/bin/bash ...

  2. mysql database alias_mysql小结——基础篇

    首先记住三个概念: 1.数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 2.SQL :结构化查询语言(Structured Query Language ...

  3. MySQL 通配符学习小结

    MySQL 通配符 SQL的模式匹配同意你使用"_"匹配不论什么单个字符,而"%"匹配随意数目字符(包含零个字符).在 MySQL中,SQL的模式缺省是忽略大写 ...

  4. 收藏|MySQL常用语法小结

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | http://8rr.co/uCbS 一.基础 ...

  5. mysql 9.0创建数据库_数据库基础学习——MySQL数据库知识小结(9)

    1 MySQL 中的约束 1.1约束类型 • 非空约束(not null) • 唯一性约束(unique) • 主键约束(primary key) PK • 外键约束(foreign key) FK ...

  6. mysql 存储过程项目小结

    1. false :0  true 1 切记 官方文档:http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html BOOL,  ...

  7. MySQL常用数据类型小结

    在 MySQL 中,有三种主要的类型:字符串.数字和日期/时间类型. 目录 [隐藏] 1 字符串类型 2 数值类型 3 日期和时间类型 4 使用建议 5 艺搜参考 字符串类型 CHAR 0-255字节 ...

  8. php mysql随机记录_php随机取mysql记录方法小结

    这篇文章主要介绍了php随机取mysql记录方法,实例分析了几种常见的随机获取mysql数据的方法,是非常实用的技巧,具有一定的参考借鉴价值,需要的朋友可以参考下 本文实例总结了php随机取mysql ...

  9. 新浪微博MySQL优化的小结和反思 | 数据库专题02

    文章转自:http://mp.weixin.qq.com/s?__biz=MzA4Nzg5Nzc5OA==&mid=206762682&idx=1&sn=1233ed1496d ...

最新文章

  1. 修改Exchange邮件报警信息
  2. Python爬虫开发教程,一看就懂!
  3. jQuery:从零开始,DIY一个jQuery(1)
  4. Eclipse 中 代码颜色的设置(注释的颜色, 局部变量的颜色, 类变量的颜色。。。 )
  5. 重构java和js版_重构Javascript代码示例(重构前后对比)
  6. LightOj 1088 - Points in Segments (二分枚举)
  7. android nfc读写demo,android nfc常用标签读取总结
  8. IP代理软件哪个比较好
  9. 无需外部晶振的SOP16封装串口扩展芯片/UART扩展芯片/1扩4芯片介绍及指令说明
  10. Spring_AOP代码修改_Introductions Advisors
  11. 惠普bios硬重置_惠普笔记本电脑BIOS恢复【五个免费修复步骤】
  12. 可道云kodexplorer修改小记
  13. 利用simhash来进行文本去重复
  14. 企业微信有朋友圈?企业微信朋友圈如何正确使用?
  15. 支付账户体系(分账接口)的9大价值
  16. VS code下开发单片机或者STM32程序
  17. vue中的@符号的是什么意思
  18. 非支配排序遗传算法c语言,非支配排序遗传算法(NSGA)的研究与应用
  19. 美国计算机硕士学校,美国计算机硕士不同学校申请难度大盘点(下篇)
  20. 哪吒票房逼近30亿,从豆瓣短评简单分析人们对哪吒的态度

热门文章

  1. vivado高层次综合(high-level synthesis,HLS)学习日记
  2. sersync+rsync实现数据文件实时同步
  3. 基于深度优先算法和A*算法的迷宫游戏开发(Java实现)
  4. 想知道好用的录音机软件有哪些?给你推荐这些录声音的软件
  5. 马东变身90后,vivo X27系列以时尚科技解构美学
  6. JPA Audit and Envers
  7. 【docker】docker对美元符号的处理
  8. 关于强迫症的两个错误观点
  9. APK安装流程及详细步骤
  10. 狼的故事1:首先是生存