Welcome to pyrad
pyrad is an implementation of a RADIUS client as described in RFC2865. It takes care of all the details like building RADIUS packets, sending them and decoding responses.
The current release is 0.8. For a list of all changes please see the changelog. See Downloads if you want to download it.
Modules
pyrad contains several modules:
- pyrad.client
- RADIUS client class.
- pyrad.dictionary
- RADIUS dictionary support. Supports standard radiusd dictionaries and has preliminary support for the freeradius octets and abinary extensions.
- pyrad.packet
- A packet with a RADIUS request or reply. A packet object takes care of all the necessary data conversion allowing the programmer to only use standard python data types and RADIUS attribute names.
- pyrad.server
- Basic RADIUS server and proxy classes.
- pyrad.tools
- Utility functions, mostly used internally for data conversion
Example
Below is a simple example of how to use pyrad; it shows how to do an authentication request.
import pyrad.packet from pyrad.client import Client from pyrad.dictionary import Dictionary srv=Client(server="radius.my.domain", secret="s3cr3t", dict=Dictionary("dicts/dictionary", "dictionary.acc")) req=srv.CreateAuthPacket(code=pyrad.packet.AccessRequest, User_Name="wichert", NAS_Identifier="localhost") req["User-Password"]=req.PwCrypt("password") reply=srv.SendPacket(req) if reply.code==pyrad.packet.AccessAccept: print "access accepted" else: print "access denied" print "Attributes returned by server:" for i in reply.keys(): print "%s: %s" % (i, reply[i])
Downloads
- pyrad-0.8.tar.gz -- 0.8 release