1.5 KiB
Simple Scapy Packet Capture
Here is a Python script that uses the Scapy library to capture a packet:
from scapy.all import *
# Define a callback function
def packet_callback(packet):
print(packet.show())
# Use the sniff() function to capture packets
sniff(prn=packet_callback, filter="tcp", count=1)
This script uses the sniff()
function from Scapy to capture packets. The prn
argument is set to a callback function, packet_callback
, which is called for each packet captured. The filter argument is set to "tcp" to capture only TCP packets, and the count argument is set to 1 to stop capturing after the first packet is captured. The show()
function is used to display the packet information.
You can also use filter
to capture specific IP or port.
sniff(prn=packet_callback, filter="tcp and host 10.1.1.2 and port 80", count=1)
It's important to note that capturing packets may require root/admin permissions.
Saving to a pcap file
Here is a modified version of the script that saves the captured packets to a pcap file:
from scapy.all import *
# Define a callback function
def packet_callback(packet):
print(packet.show())
wrpcap("captured_packets.pcap", packet, append=True)
# Use the sniff() function to capture packets
sniff(prn=packet_callback, filter="tcp", count=1)
This script uses the wrpcap()
function from Scapy to save the captured packets to a pcap
file named "captured_packets.pcap". The append=True
argument is used to append the packets to the file instead of overwriting it.