SharpPcap开发包分析c#

SharpPcap开发包分析
 
1.协议部分
===========================================================================================================================
Packet类
 提供属性
 Bytes        只读,没有实际实现
 Data        只读,没有实际实现
 Header       只读,没有实际实现
 Color        每一层都继承,颜色不一样
 
===========================================================================================================================
 
EthernetPacket类
 继承Packet
 构造函数:提供Bytes和ethernet层长度
 EthernetHeader       与Header相同,链路层头,14bytes
 Header*           同EthernetHeader
 EthernetHeaderLength    链路层头长度,14
 HeaderLength        同EthernetHeaderLength
 EthernetData        去掉链路层头后剩下部分
 Data*            同EthernetData
 Bytes*           所有数据,包括链路层,IP层及以上
 EthernetProtocol      可读写,链路层协议字段,0x0800表示IP协议,0x0806表示ARP,0x8035表示RARP
 SourceHwAddress       可读写,源MAC地址
 DestinationHwAddress    可读写,目的MAC地址
 
EthernetProtocols_Fields结构
 提供ethernet层协议的常量,如0x0800表示IP协议
 
EthernetProtocol类
 提供ethernet层协议中字段的解析方法,有一个字段需要解析,协议类型
 
EthernetFields_Fields结构
 提供ethernet层协议中所有字段的偏移(从本层协议头开始)
 
===========================================================================================================================
 
IPPacket类
 继承EthernetPacket类,
 构造函数,直接调用基类EthernetPacket的构造函数
 Version           只读,版本
 IPVersion          可读写,4位版本
 HeaderLength*        只读,IP首部长度
 IPHeaderLength       可读写,4位IP首部长度*4,字节数
 IpHeaderLength       同IPHeaderLength
 Id             可读写,16位标识
 FragmentOffset       可读写,13位片偏移
 SourceAddress        可读写,源地址
 DestinationAddress     可读写,目的地址
 IPHeader          只读,IP头部字节数组
 Header*           同IPHeader
 IPData           只读,IP的数据段长度
 Data*            同IPData
 IPChecksum         可读写,16位首部校验和
 Checksum          同IPChecksum
 ValidIPChecksum       只读,检查校验和
 ValidChecksum        同ValidIPChecksum
 TypeOfService        可读写,8位服务类型 
 IPTotalLength        可读写,16位IP总长度,字节数
 Length           同IPTotalLength
 FragmentFlags        可读写,片偏移的三位标志
 TimeToLive         可读写,8位生存时间,TTL
 
 方法:
 ComputeIPChecksum,参数设为true会更新首部校验和
 
 
IPProtocols_Fields结构
 提供IP层协议字段的常量
 
IPProtocol类
 提供IP层协议的解析方法,并提供支持协议的描述
 
IPFields_Fields类
 提供IP层协议的每隔字段的偏移(从本层协议头开始)
 
IPAddress类
 提供IP层中IP字段相关的操作,包括从字节buffer中取的IP地址和修改地址
 
IPPorts_Fields结构
 提供所有常用端口的常量定义
 
IPPort类
 提供常用端口的描述信息
 
IPProtocols_Fields结构
 提供IP层协议字段的常量
 
IPProtocol类
 提供IP层协议的解析方法,并提供支持协议的描述 
 
===========================================================================================================================
 
UDPPacket类
 继承IPPacket
 SourcePort         可读写,源端口
 DestinationPort       可读写,目的端口
 UDPLength          可读写,16位UDP长度,字节  等于Header.Length+Data.Length
 Length*           只读,UDPLength
 UDPChecksum         可读写,UDP校验和
 Checksum*          可读写,UDPChecksum
 UDPHeader          只读,UDP头部字节数组
 Header*           只读,UDPHeader
 UDPData           可读写,UDP的数据段(写属性在1.6.2版才有)
 Data*            只读,UDPData
 
 方法:
 ComputeUDPChecksum     参数设为true会更新首部校验和
 SetData           设置UDP包的数据段内容,会自动更新UDPLength,IPTotalLength,调用基类OnOffsetChanged方法,更新PcapHeader(在1.6.2版才有)
 
=========================================================================================================
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值