class TestFilterMAC(_FilterDefaultTest, unittest.TestCase): with open('test_packets/tcp_packet', 'rb') as f: raw_data = f.read() pack_filter = OneArgumentSimpleFilter( "EthernetHeader.destination_MAC_address==" + "00:50:56:e9:04:2e") one_lvl_pack = pp.parse_Ethernet(raw_data) all_lvl_pack = pp.parse_raw_packet(raw_data, 'Ethernet') def test_one_lvl_filter_with_all_lvl_pack(self): res = self.pack_filter.filter_one_level(self.all_lvl_pack) self.check(res)
def test_all(self): p = pp.parse_Ethernet(self.raw_data) h = p.header data = p.data self.assertEqual(str(h.ether_type), "ARP") arp_header = pp.parse_ARP(data).header self.assertEqual(str(arp_header.hardware_type), "Ethernet") self.assertEqual(str(arp_header.protocol_type), "IPv4") self.assertEqual(int(arp_header.hw_addr_byte_len), 6) self.assertEqual(int(arp_header.proto_addr_byte_len), 4) self.assertEqual(int.from_bytes(arp_header.operation_code, "big"), 1) self.assertEqual(str(arp_header.hw_addr_sender), "b4:86:55:8c:fa:76") self.assertEqual(str(arp_header.proto_addr_sender), "192.168.8.1") self.assertEqual(str(arp_header.hw_addr_target), "00:00:00:00:00:00") self.assertEqual(str(arp_header.proto_addr_target), "192.168.8.103")
def test_mac_parsing(self): pack = pp.parse_Ethernet(self.raw_data) h = pack.header self.assertEqual(str(h.destination_MAC_address), "00:50:56:e9:04:2e") self.assertEqual(str(h.source_MAC_address), "00:0c:29:84:86:5f")