PyRIC (is a Linux only) library providing wireless developers and
pentesters the ability to identify, enumerate and manipulate their
system's wireless cards programmatically in Python. Pentesting
applications and scripts written in Python have increased dramatically
in recent years. However, these tools still rely on Linux command lines
tools to setup and prepare and restore the system for use. Until now.
Why use subprocess.Popen, regular expressions and str.find to interact
with your wireless cards? PyRIC is:

  * Pythonic: no ctypes, SWIG etc. PyRIC redefines C header files as
  Python and uses sockets to communicate with the kernel.

  * Self-sufficient: No third-party files used. PyRIC is completely
  self-contained.

  * Fast: (relatively speaking) PyRIC is faster than using command line
  tools through subprocess.Popen

  * Parseless: Get the output you want without parsing output from
  command line tools. Never worry about newer iw versions and having
  to rewrite your parsers.

  * Easy: If you can use iw, you can use PyRIC.

At its heart, PyRIC is a Python port of (a subset of) iw and by
extension, a Python port of Netlink w.r.t nl80211 functionality. The
original goal of PyRIC was to provide a simple interface to the
underlying nl80211 kernel support, handling the complex operations of
Netlink seamlessly while maintaining a minimum of "code walking" to
understand, modify and extend. But, why stop there? Since its initial
inception, PyRIC has grown. PyRIC puts iw, ifconfig, rfkill, udevadm,
airmon-ng and macchanger in your hands (or your program).
