public void UDPData() { Packet p; UDPPacket u; PcapOfflineDevice dev = Pcap.GetPcapOfflineDevice("../../capture_files/udp_dns_request_response.pcap"); dev.Open(); // check the first packet p = dev.GetNextPacket(); Assert.IsNotNull(p); Assert.IsTrue(p is UDPPacket); u = (UDPPacket)p; Assert.AreEqual(41 - u.UDPHeader.Length, u.UDPData.Length, "UDPData.Length mismatch"); // check the second packet p = dev.GetNextPacket(); Assert.IsNotNull(p); Assert.IsTrue(p is UDPPacket); u = (UDPPacket)p; Assert.AreEqual(356 - u.UDPHeader.Length, u.UDPData.Length, "UDPData.Length mismatch"); Console.WriteLine("u is {0}", u.ToString()); dev.Close(); }
public void ParsingArpPacketRequestResponse() { PcapOfflineDevice dev = Pcap.GetPcapOfflineDevice("../../capture_files/arp_request_response.pcap"); dev.Open(); Packet p; int packetIndex = 0; while ((p = dev.GetNextPacket()) != null) { Console.WriteLine("got packet"); Console.WriteLine("{0}", p.ToString()); switch (packetIndex) { case 0: VerifyPacket0(p); break; case 1: VerifyPacket1(p); break; default: Assert.Fail("didn't expect to get to packetIndex " + packetIndex); break; } packetIndex++; } dev.Close(); }
public virtual void TCPData() { PcapOfflineDevice dev = Pcap.GetPcapOfflineDevice("../../capture_files/tcp_with_extra_bytes.pcap"); dev.Open(); Packet p; p = dev.GetNextPacket(); Assert.IsNotNull(p); Console.WriteLine(p.GetType()); Assert.IsTrue(p is TCPPacket); TCPPacket t = (TCPPacket)p; // even though the packet has 6 bytes of extra data, the ip packet shows a size of // 40 and the ip header has a length of 20. The TCP header is also 20 bytes so // there should be zero bytes in the TCPData value int expectedTcpDataLength = 0; Assert.AreEqual(expectedTcpDataLength, t.TCPData.Length); dev.Close(); }
public void IPv6PacketTestParsing() { PcapOfflineDevice dev = Pcap.GetPcapOfflineDevice("../../capture_files/ipv6_icmpv6_packet.pcap"); dev.Open(); Packet p; int packetIndex = 0; while ((p = dev.GetNextPacket()) != null) { Console.WriteLine("got packet"); switch (packetIndex) { case 0: VerifyPacket0(p); break; default: Assert.Fail("didn't expect to get to packetIndex " + packetIndex); break; } packetIndex++; } dev.Close(); }
public void TestParsingKnownPackets() { PcapOfflineDevice dev = Pcap.GetPcapOfflineDevice("../../capture_files/test_stream.pcap"); dev.Open(); Packet p; int packetIndex = 0; while ((p = dev.GetNextPacket()) != null) { Console.WriteLine("got packet"); switch (packetIndex) { case 0: VerifyPacket0(p); break; case 1: VerifyPacket1(p); break; case 2: VerifyPacket2(p); break; case 3: VerifyPacket3(p); break; case 4: VerifyPacket4(p); break; case 5: VerifyPacket5(p); break; default: Assert.Fail("didn't expect to get to packetIndex " + packetIndex); break; } packetIndex++; } dev.Close(); }
public virtual void Checksum() { PcapOfflineDevice dev = Pcap.GetPcapOfflineDevice("../../capture_files/tcp.pcap"); dev.Open(); Packet p; p = dev.GetNextPacket(); Assert.IsNotNull(p); Console.WriteLine(p.GetType()); Assert.IsTrue(p is TCPPacket); TCPPacket t = (TCPPacket)p; Console.WriteLine("Checksum: " + t.Checksum.ToString("X")); Assert.IsTrue(t.ValidChecksum); dev.Close(); }
public void TCPChecksumIPv6() { PcapOfflineDevice dev = Pcap.GetPcapOfflineDevice("../../capture_files/ipv6_http.pcap"); dev.Open(); Packet p; // checksums from wireshark of the capture file int[] expectedChecksum = { 0x41a2, 0x4201, 0x5728, 0xf448, 0xee07, 0x939c, 0x63e4, 0x4590, 0x3725, 0x3723 }; int packetIndex = 0; while ((p = dev.GetNextPacket()) != null) { Assert.IsTrue(p is TCPPacket); TCPPacket t = (TCPPacket)p; Assert.IsTrue(t.ValidChecksum); // compare the computed checksum to the expected one Assert.AreEqual(expectedChecksum[packetIndex], t.ComputeTCPChecksum()); packetIndex++; } dev.Close(); }