Scapy
What it is
Scapy is a free Python program and library for manipulating network packets: it can create or decode them, send and capture them, and match requests with replies. It works as either an interactive shell or a library, and supports tasks such as scanning, tracerouting, probing, unit tests and network discovery. Users can set packet field values and combine protocol layers rather than depend on fixed templates. After a probe, Scapy returns decoded packets before interpretation, leaving them available for analysis. It can read and store pcap files and inject invalid frames and custom 802.11 frames. Documentation covers adding protocols and extending Scapy with add-ons, as well as installation, usage, troubleshooting and its API. It runs on Linux, macOS, BSD and Windows; Windows installation requires Npcap. Plotting requires Matplotlib, while TLS decryption and PKI operations require the cryptography package. Scapy's code, tests and tools are licensed under GPL v2, and its documentation under CC BY-NC-SA 2.5.
For and against
For
- Can be used as a shell or a Python library.
- Supports pcap reading and storage.
- Users can set packet fields and stack protocol layers.
- Online documentation includes installation guides and an API reference.
Against
- Windows installation requires Npcap.
- Plotting requires Matplotlib.
- TLS decryption and PKI operations require cryptography.
The verdict
Scapy is a free option for users who need to shape, send, capture, and inspect network packets with flexibility. Its Windows and optional-feature dependencies are worth checking against your setup.
Who it suits
Scapy suits developers, IT and network professionals, researchers, system administrators, and telecommunications users who need customizable packet manipulation and network probing.
Plans and prices
Scapy
GPLv2 license · Python 3.7+
Read 2 Oct 2026 · scapy.net
On the record
- Audience
- Scapy is intended for users who need customizable network probing and packet manipulation tools rather than fixed-purpose utilities.scapy.readthedocs.io · read 2 Oct 2026
- Documentation
- The project provides online documentation with installation instructions, usage guides, troubleshooting, and an API reference.scapy.readthedocs.io · read 30 Sep 2026
- Installation
- The latest release can be installed with pip install scapy, and it can also run from the run_scapy or run_scapy.bat scripts without installation.scapy.readthedocs.io · read 2 Oct 2026
- Intended audiences
- The project metadata lists developers, IT, science and research, system administrators, and telecommunications as intended audiences.github.com · read 30 Sep 2026
- Interactive modes
- Scapy can be used as an interactive shell or as a library.github.com · read 2 Oct 2026
- License
- Scapy’s code, tests, and tools are licensed under GPL v2.github.com · read 30 Sep 2026
- Licensing
- Scapy code, tests and tools are licensed under GPL v2, while its documentation is licensed under CC BY-NC-SA 2.5.github.com · read 2 Oct 2026
- Network tasks
- The project lists scanning, tracerouting, probing, unit tests, and network discovery among Scapy’s uses.github.com · read 30 Sep 2026
- Optional dependencies
- Plotting requires Matplotlib, while TLS decryption and PKI operations require the cryptography package.scapy.readthedocs.io · read 30 Sep 2026
- Optional integrations
- Optional features can use Matplotlib, PyX, Graphviz, ImageMagick, VPython-Jupyter and cryptography.scapy.readthedocs.io · read 2 Oct 2026
- Packet flexibility
- Users can set arbitrary field values and stack protocol layers without predetermined templates.scapy.readthedocs.io · read 2 Oct 2026
- Packet handling
- It can forge or decode packets across many protocols, send them, capture them, and match requests with replies.scapy.net · read 2 Oct 2026
- Platform support
- Scapy runs on Linux, macOS, BSD, and Windows; Windows installation requires Npcap.scapy.readthedocs.io · read 30 Sep 2026
- Protocol extensions
- The documentation includes instructions for adding new protocols and extending Scapy with add-ons.scapy.readthedocs.io · read 30 Sep 2026
- Purpose
- Scapy is a Python program for sending, sniffing, dissecting and forging network packets.scapy.readthedocs.io · read 2 Oct 2026
- Python DSL
- Scapy uses Python syntax and interpreter capabilities as a domain-specific language for describing packets.scapy.readthedocs.io · read 2 Oct 2026
- Raw results
- After a probe, Scapy returns the full decoded packets before interpretation so users can analyze them in different ways.scapy.readthedocs.io · read 2 Oct 2026
- Release
- Scapy documentation lists release 2.7.1 dated October 1, 2026.scapy.readthedocs.io · read 2 Oct 2026