Exemplo n.º 1
0
 public override void Extract(byte[] arr, uint offset)
 {
     version        = (bit4)BitHelper.ExtractBits(arr, offset * 8, 4);
     ihl            = (bit4)BitHelper.ExtractBits(arr, offset * 8 + 4, 4);
     diffserv       = BitHelper.Extract8(arr, offset + 1);
     totalLen       = BitHelper.Extract16(arr, offset + 2);
     identification = BitHelper.Extract16(arr, offset + 4);
     flags          = (bit3)BitHelper.ExtractBits(arr, offset + 48, 3);
     fragOffset     = BitHelper.ExtractBits(arr, offset + 51, 13);
     ttl            = BitHelper.Extract8(arr, offset + 8);
     protocol       = BitHelper.Extract8(arr, offset + 9);
     hdrChecksum    = BitHelper.Extract16(arr, offset + 10);
     srcAddr        = BitHelper.Extract32(arr, offset + 12);
     dstAddr        = BitHelper.Extract32(arr, offset + 16);
 }
Exemplo n.º 2
0
 public override void Parse(byte[] data, uint offset)
 {
     offset        *= 8;
     version        = BitHelper.Extract4(data, offset + 0);
     ihl            = BitHelper.Extract4(data, offset + 4);
     diffserv       = BitHelper.Extract8(data, offset + 8);
     totalLen       = BitHelper.Extract16(data, offset + 16);
     identification = BitHelper.Extract16(data, offset + 32);
     flags          = BitHelper.ExtractN(data, offset + 48, 3);
     fragOffset     = BitHelper.ExtractN(data, offset + 51, 13);
     ttl            = BitHelper.Extract8(data, offset + 64);
     protocol       = BitHelper.Extract8(data, offset + 72);
     hdrChecksum    = BitHelper.Extract16(data, offset + 80);
     srcAddr        = BitHelper.Extract32(data, offset + 96);
     dstAddr        = BitHelper.Extract32(data, offset + 128);
     length         = 160;
     setValid();
 }