#!/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)
syntax highlighted by Code2HTML, v. 0.9.1