import pyshark # CAPTURE EVERYTHING AND PRINT PACKET SUMMARIES print("\n----- Packet summaries --------------------") capture = pyshark.LiveCapture(interface='enp0s3', only_summaries=True) capture.sniff(packet_count=10) for packet in capture: print(f" {packet}") # CAPTURE DNS AND PRINT PACKETS print("\n----- DNS packet summaries (collect for 50 packets) --------------------") capture = pyshark.LiveCapture(interface='enp0s3', only_summaries=True, display_filter='dns') capture.sniff(packet_count=50) for packet in capture: print(f" {packet}") # CAPTURE ONLY DNS AND PRINT COMPLETE PACKETS print("\n\n----- DNS packets, complete (collect for 40 total packets) ---------------------") capture = pyshark.LiveCapture(interface='enp0s3', display_filter='dns') capture.sniff(packet_count=40) for packet in capture: print(packet) # CAPTURE AND HANDLE PACKETS AS THEY ARRIVE print("\n\n----- Print packets as they are detected ---------------------") capture = pyshark.LiveCapture(interface='enp0s3', only_summaries=True, bpf_filter='tcp port https') def print_packet(pkt): print(" ", pkt) capture.apply_on_packets(print_packet, packet_count=20) # CAPTURE AND HANDLE PACKETS AS THEY ARRIVE USING LAMBDA print("\n\n----- Print packets as they are detected (lambda version) ---------------------") capture = pyshark.LiveCapture(interface='enp0s3', only_summaries=True, bpf_filter='tcp port https') capture.apply_on_packets(lambda pkt: print("lambda ", pkt), packet_count=20)