• Home
Name Date Size #Lines LOC

..--

.config/04-Jul-2025-983736

.github/04-Jul-2025-356309

scapy/04-Jul-2025-225,531177,500

test/04-Jul-2025-83,07566,399

.appveyor.ymlD04-Jul-20251.7 KiB5230

.git-blame-ignore-revsD04-Jul-20252.1 KiB5250

.gitattributesD04-Jul-202564 43

.gitignoreD04-Jul-2025189 1918

.packit.ymlD04-Jul-20252.2 KiB5245

.readthedocs.ymlD04-Jul-2025573 2817

.travis.ymlD04-Jul-2025414 2216

Android.bpD04-Jul-20251.3 KiB4138

CONTRIBUTING.mdD04-Jul-20257 KiB169122

LICENSED04-Jul-202517.7 KiB340281

MANIFEST.inD04-Jul-202565 54

METADATAD04-Jul-2025762 2522

OWNERSD04-Jul-202537 11

README.mdD04-Jul-20254.7 KiB10374

pyproject.tomlD04-Jul-20252.4 KiB9887

run_scapyD04-Jul-2025270 1412

run_scapy.batD04-Jul-2025503 2323

setup.pyD04-Jul-20252.6 KiB9058

tox.iniD04-Jul-20256.4 KiB193167

README.md

1<!-- start_ppi_description -->
2
3# <img src="https://github.com/secdev/scapy/raw/master/doc/scapy/graphics/scapy_logo.png" width="64" valign="middle" alt="Scapy" />&nbsp;&nbsp; Scapy
4
5[![Scapy unit tests](https://github.com/secdev/scapy/actions/workflows/unittests.yml/badge.svg?branch=master&event=push)](https://github.com/secdev/scapy/actions/workflows/unittests.yml?query=event%3Apush) <!-- ignore_ppi -->
6[![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/os03daotfja0wtp7/branch/master?svg=true)](https://ci.appveyor.com/project/secdev/scapy/branch/master) <!-- ignore_ppi -->
7[![Codecov Status](https://codecov.io/gh/secdev/scapy/branch/master/graph/badge.svg)](https://codecov.io/gh/secdev/scapy) <!-- ignore_ppi -->
8[![Codacy Badge](https://api.codacy.com/project/badge/Grade/30ee6772bb264a689a2604f5cdb0437b)](https://www.codacy.com/app/secdev/scapy) <!-- ignore_ppi -->
9[![PyPI Version](https://img.shields.io/pypi/v/scapy.svg)](https://pypi.python.org/pypi/scapy/)
10[![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](LICENSE)
11[![Join the chat at https://gitter.im/secdev/scapy](https://badges.gitter.im/secdev/scapy.svg)](https://gitter.im/secdev/scapy) <!-- ignore_ppi -->
12
13Scapy is a powerful Python-based interactive packet manipulation program and
14library.
15
16It is able to forge or decode packets of a wide number of protocols, send them
17on the wire, capture them, store or read them using pcap files, match requests
18and replies, and much more. It is designed to allow fast packet prototyping by
19using default values that work.
20
21It can easily handle most classical tasks like scanning, tracerouting, probing,
22unit tests, attacks or network discovery (it can replace `hping`, 85% of `nmap`,
23`arpspoof`, `arp-sk`, `arping`, `tcpdump`, `wireshark`, `p0f`, etc.). It also
24performs very well at a lot of other specific tasks that most other tools can't
25handle, like sending invalid frames, injecting your own 802.11 frames, combining
26techniques (VLAN hopping+ARP cache poisoning, VoIP decoding on WEP protected
27channel, ...), etc.
28
29Scapy supports Python 3.7+. It's intended to
30be cross platform, and runs on many different platforms (Linux, OSX,
31\*BSD, and Windows).
32
33## Getting started
34
35Scapy is usable either as a **shell** or as a **library**.
36For further details, please head over to [Getting started with Scapy](https://scapy.readthedocs.io/en/latest/introduction.html), which is part of the documentation.
37
38### Shell demo
39
40![Scapy install demo](https://secdev.github.io/files/doc/animation-scapy-install.svg)
41
42Scapy can easily be used as an interactive shell to interact with the network.
43The following example shows how to send an ICMP Echo Request message to
44`github.com`, then display the reply source IP address:
45
46```python
47sudo ./run_scapy
48Welcome to Scapy
49>>> p = IP(dst="github.com")/ICMP()
50>>> r = sr1(p)
51Begin emission:
52.Finished to send 1 packets.
53*
54Received 2 packets, got 1 answers, remaining 0 packets
55>>> r[IP].src
56'192.30.253.113'
57```
58
59### Resources
60
61The [documentation](https://scapy.readthedocs.io/en/latest/) contains more
62advanced use cases, and examples.
63
64Other useful resources:
65
66-   [Scapy in 20 minutes](https://github.com/secdev/scapy/blob/master/doc/notebooks/Scapy%20in%2015%20minutes.ipynb)
67-   [Interactive tutorial](https://scapy.readthedocs.io/en/latest/usage.html#interactive-tutorial) (part of the documentation)
68-   [The quick demo: an interactive session](https://scapy.readthedocs.io/en/latest/introduction.html#quick-demo) (some examples may be outdated)
69-   [HTTP/2 notebook](https://github.com/secdev/scapy/blob/master/doc/notebooks/HTTP_2_Tuto.ipynb)
70-   [TLS notebooks](https://github.com/secdev/scapy/blob/master/doc/notebooks/tls)
71
72## [Installation](https://scapy.readthedocs.io/en/latest/installation.html)
73
74Scapy works without any external Python modules on Linux and BSD like operating
75systems. On Windows, you need to install some mandatory dependencies as
76described in [the
77documentation](http://scapy.readthedocs.io/en/latest/installation.html#windows).
78
79On most systems, using Scapy is as simple as running the following commands:
80
81```bash
82git clone https://github.com/secdev/scapy
83cd scapy
84./run_scapy
85```
86
87To benefit from all Scapy features, such as plotting, you might want to install
88Python modules, such as `matplotlib` or `cryptography`. See the
89[documentation](http://scapy.readthedocs.io/en/latest/installation.html) and
90follow the instructions to install them.
91
92<!-- stop_ppi_description -->
93
94## License
95
96Scapy's code, tests and tools are licensed under GPL v2.
97The documentation (everything unless marked otherwise in `doc/`, and except the logo) is licensed under CC BY-NC-SA 2.5.
98
99## Contributing
100
101Want to contribute? Great! Please take a few minutes to
102[read this](CONTRIBUTING.md)!
103