#!/usr/bin/python import random, socket, sys import pyrad.packet from pyrad.client import Client from pyrad.dictionary import Dictionary def SendPacket(srv, req): try: srv.SendPacket(req) except pyrad.client.Timeout: print "RADIUS server does not reply" sys.exit(1) except socket.error, error: print "Network error: " + error[1] sys.exit(1) srv=Client(server="localhost", secret="Kah3choteereethiejeimaeziecumi", dict=Dictionary("dictionary")) req=srv.CreateAcctPacket(User_Name="wichert") req["NAS-IP-Address"]="192.168.1.10" req["NAS-Port"]=0 req["NAS-Identifier"]="trillian" req["Called-Station-Id"]="00-04-5F-00-0F-D1" req["Calling-Station-Id"]="00-01-24-80-B3-9C" req["Framed-IP-Address"]="10.0.0.100" print "Sending accounting start packet" req["Acct-Status-Type"]="Start" SendPacket(srv, req) print "Sending accounting stop packet" req["Acct-Status-Type"]="Stop" req["Acct-Input-Octets"] = random.randrange(2**10, 2**30) req["Acct-Output-Octets"] = random.randrange(2**10, 2**30) req["Acct-Session-Time"] = random.randrange(120, 3600) req["Acct-Terminate-Cause"] = random.choice(["User-Request", "Idle-Timeout"]) SendPacket(srv, req)