Metadata-Version: 2.1
Name: pyrcrack
Version: 1.2.6
Summary: Pythonic aircrack-ng bindings
Project-URL: Documentation, https://github.com/XayOn/pyrcrack#readme
Project-URL: Issues, https://github.com/XayOn/pyrcrack/issues
Project-URL: Source, https://github.com/XayOn/pyrcrack
Author-email: David Francos <me@davidfrancos.net>
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.7
Requires-Dist: async-timeout>=3
Requires-Dist: docopt>=0.6
Requires-Dist: dotmap>=1
Requires-Dist: geopy>=2
Requires-Dist: mac-vendor-lookup>=0.1
Requires-Dist: parse>=1.12
Requires-Dist: pyshark>=0.4
Requires-Dist: pytest-asyncio>=0.14
Requires-Dist: rich>=7
Requires-Dist: stringcase>=1
Requires-Dist: xmltodict>=0.12
Description-Content-Type: text/markdown


<div align="center">
<img src="https://github.com/XayOn/pyrcrack/raw/develop/docs/pythonlovesaircrack.png" role=img>

| | |
| --- | --- |
| CI/CD | [![CI - Test](https://github.com/xayon/pyrcrack/actions/workflows/test.yml/badge.svg)](https://github.com/xayon/pyrcrack/actions/workflows/test.yml) [![CD - Build Package](https://github.com/xayon/pyrcrack/actions/workflows/release.yml/badge.svg)](https://github.com/xayon/pyrcrack/actions/workflows/release.yml) |
| Package | [![PyPI - Version](https://img.shields.io/pypi/v/pyrcrack.svg?logo=pypi&label=PyPI&logoColor=gold)](https://pypi.org/project/pyrcrack/) [![PyPI - Downloads](https://img.shields.io/pypi/dm/pyrcrack.svg?color=blue&label=Downloads&logo=pypi&logoColor=gold)](https://pypi.org/project/pyrcrack/) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pyrcrack.svg?logo=python&label=Python&logoColor=gold)](https://pypi.org/project/pyrcrack/) |
| Meta | [![code style - yapf](https://img.shields.io/badge/code%20style-yapf-000000.svg)](https://github.com/psf/black) [![types - Mypy](https://img.shields.io/badge/types-Mypy-blue.svg)](https://github.com/python/mypy) [![imports - isort](https://img.shields.io/badge/imports-isort-ef8336.svg)](https://github.com/pycqa/isort) 

</div>

**Python aircrack-ng bindings**

PyrCrack is a Python API exposing a common aircrack-ng API. As AircrackNg will
run in background processes, and produce parseable output both in files and
stdout, the most pythonical approach are context managers, cleaning up after 

This library exports a basic aircrack-ng API aiming to keep always a small
readable codebase.

This has led to a simple library that executes each of the aircrack-ng's suite commands
and auto-detects its usage instructions. Based on that, it dinamically builds
classes inheriting that usage as docstring and a run() method that accepts
keyword parameters and arguments, and checks them BEFORE trying to run them.

Some classes expose themselves as async iterators, as airodump-ng's wich
returns access points with its associated clients.

## Documentation

The [documentation](https://davidfrancos.net/pyrcrack) is made with [Material
for MkDocs](https://github.com/squidfunk/mkdocs-material) and is hosted by
[GitHub Pages](https://docs.github.com/en/pages).

### Examples

Be sure to check the python [notebook example](./docs/examples/example.ipynb)

You can have also have a look at the examples/ folder for some usage examples,
such as the basic "scan for targets", that will list available interfaces, let
you choose one, put it in monitor mode, and scan for targets updating results
each 2 seconds.

```python
import asyncio

import pyrcrack

from rich.console import Console
from rich.prompt import Prompt


async def scan_for_targets():
    """Scan for targets, return json."""
    console = Console()
    console.clear()
    console.show_cursor(False)
    airmon = pyrcrack.AirmonNg()

    interface = Prompt.ask(
	'Select an interface',
	choices=[a['interface'] for a in await airmon.interfaces])

    async with airmon(interface) as mon:
	async with pyrcrack.AirodumpNg() as pdump:
	    async for result in pdump(mon.monitor_interface):
		console.clear()
		console.print(result.table)
		await asyncio.sleep(2)


asyncio.run(scan_for_targets())
 ```

This snippet of code will produce the following results:

![scan](https://raw.githubusercontent.com/XayOn/pyrcrack/master/docs/scan.png)



# Contributors

![contributors](https://contrib.rocks/image?repo=xayon/pyrcrack)


## License

Pyrcrack is distributed under the terms of the [GPL2+](https://spdx.org/licenses/GPL2.html) license.

## v1.2.6 (2022-12-20)

### Fix

- Fixed small typing issue

## v1.2.5 (2022-12-03)

### Fix

- Fixed CI badge on readme

## v1.2.4 (2022-12-03)

### Fix

- Reorganized workflows

## v1.2.3 (2022-12-03)

### Fix

- I was re-checking out the repo

## v1.2.2 (2022-12-03)

### Fix

- Changed action for softprops/action-gh-release

## v1.2.1 (2022-12-03)

### Fix

- Added missing commitizen dep

## v1.2.0 (2022-12-03)

>>>>>>> d12f20d9790c04622957a14d2304e149b78d49df
### Feat

- Added CI autorelease
- Upgrading workflows
- Migrating to hatch
- :sparkles: Check correct aircrack version and root (#41)
- :sparkles: #29 Improved airmon-ng interface
- :sparkles: #37 Improved aireplay-ng usability (#38)
- Added debug mode. Don't delete tempfiles
- closes: #11 Added pypi to github flow

### Fix

- :bug: #29 Don't break on exit in most cases
- Added run-as-root message
- Fixed airmon test
- [#10] Using codecov badge
- [#10] Migrating to codecov
