Scapy is a free Python program and library for manipulating network packets. It can forge or decode packets, send and capture them, and match requests with replies. Users can work through an interactive shell or use it as a library. Listed tasks include scanning, tracerouting, probing, unit tests, and network discovery. Rather than relying on fixed templates, users can set field values and stack protocol layers; after a probe, Scapy returns decoded packets before interpretation. It can read and store pcap files and inject invalid frames or custom 802.11 frames. The documentation describes adding protocols and extending the tool with add-ons. Scapy runs on Linux, macOS, BSD, and Windows, with Npcap required for Windows installation. Plotting needs Matplotlib, while TLS decryption and PKI operations need the cryptography package. Code, tests, and tools are under GPL v2, and documentation uses CC BY-NC-SA 2.5. Scapy provides installation guidance, usage documentation, troubleshooting, and an API reference.
Who it is for
Scapy suits developers, IT and research users, system administrators, and telecommunications professionals who need customizable packet manipulation and network probing rather than fixed-purpose utilities.
What is good
- Works as an interactive shell or a Python library.
- Supports packet capture and pcap files.
- Users can set field values and stack protocols.
- Documentation includes usage guides and an API reference.
- Free under GPL v2.
What to know first
- Windows installation requires Npcap.
- Plotting requires Matplotlib.
- TLS decryption and PKI operations require cryptography.
- Project supports only the latest master version.
Freedom251 review
Scapy: the full review
Scapy offers packet-level flexibility for users comfortable working with Python and network protocols. Check platform and optional-package requirements for the tasks you need.
Scapy is a Python-based tool for creating, sending, capturing and decoding network packets. It is best suited to developers, researchers and network administrators who need to customize probes or inspect traffic at the packet level.
Overview
Scapy combines an interactive shell with a Python library, so users can work at the prompt or incorporate packet operations into code. It supports scanning, tracerouting, probing, network discovery, unit tests and attacks. This breadth suits exploratory and specialized network work, but users must shape their own workflows rather than rely on a narrow, guided tool.
Key features
Users can assign arbitrary field values and stack protocol layers without being confined to predetermined packet templates. Scapy can forge and decode packets, send and capture traffic, and match requests with replies. After a probe, it returns fully decoded packets before interpretation, preserving room for custom analysis but leaving the interpretation to the user.
It reads and stores PCAP files, injects invalid frames and supports custom 802.11 frames. Documentation explains how to add protocols and extend Scapy with add-ons, which is useful when standard packet definitions do not cover a task. Online guides include installation, usage, troubleshooting and an API reference.
Scapy can be installed with pip install scapy or run from the provided platform scripts without installation. Optional integrations include Matplotlib, PyX, Graphviz, ImageMagick, VPython-Jupyter and cryptography. Plotting requires Matplotlib; TLS decryption and PKI operations require cryptography, so those tasks bring additional setup.
Pricing
Scapy costs 0.00 USD per free, with no free trial. The free plan includes the GPL v2-licensed code, tests and tools, and requires Python 3.7 or later. There are no paid tiers or usage caps described. The GPL v2 license is a material consideration for anyone evaluating Scapy for use in a proprietary software distribution.
Platforms
Scapy runs on Linux, macOS, BSD and Windows; Windows installation requires Npcap. Its published platform coverage also includes API, self-hosted and web. Capture sources and remote capture are supported. The project supports only the latest Scapy master version, which may not suit teams that need support across older versions. Critical bugs should be reported privately through GitHub's security tab; the project has not set up a SECURITY.md file.
Who it's for
Scapy is a strong fit for developers, IT and system administrators, telecommunications professionals, and science and research users who need to customize network probes or manipulate packets directly. Its Python syntax makes it particularly appropriate for people already comfortable using Python as a working language. Readers looking for a ready-made analyzer with a more prescribed workflow should consider a different tool.
Pros and cons
- Pros: Arbitrary field values and protocol layering support packet work beyond fixed templates.
- Pros: Shell and library access, plus PCAP handling and request-reply matching, cover varied workflows.
- Pros: Protocol extension guidance and add-ons leave room for specialized use.
- Cons: Python-based operation and raw decoded results expect users to build workflows and interpret output themselves.
- Cons: Windows requires Npcap, while plotting, TLS decryption and PKI operations depend on optional packages.
- Cons: Support is limited to the latest master version, and the security page lacks a SECURITY.md file.
Alternatives
For a free CLI focused on audit records, choose NETCAP; its free Core plan includes 66+ audit record types and community support, while Pro costs 548.00 USD per month. NetworkMiner is another free-edition option for Linux, macOS and Windows. Consider Arkime for a free, open-source option with no paid-only features or license fees, or Kismet for free, open-source software with no stated usage limit.
OpenGrep is a free CLI static analysis engine. For free packet capture tools, compare tcpdump, whose BSD license accompanies capture permissions that depend on operating system and configuration, with TShark and Wireshark, both free tools from the Wireshark project ecosystem.
Browse Network Protocol Analyzers and Network Packet Analyzer Software for more options.
Verdict
Choose Scapy if you need packet-level control, custom probes and extensibility in a free Python tool. Its strongest reason to choose it is the ability to construct and analyze packets without fixed templates; look elsewhere if you need a guided workflow or support beyond the latest master version.
Scapy plans and pricing
All plansCompared on network packet analyzer software
- Free plan
- Yes
- Traffic decryption
- Yes



