#!/usr/bin/env python3 import socket import sys from os import path import pyrad.packet from pyrad.client import Client from pyrad.dictionary import Dictionary def main(path_to_dictionary): srv = Client(server='127.0.0.1', secret=b'Kah3choteereethiejeimaeziecumi', dict=Dictionary(path_to_dictionary)) req = srv.CreateAuthPacket( code=pyrad.packet.AccessRequest, **{ 'User-Name': 'wichert', 'NAS-IP-Address': '192.168.1.10', 'NAS-Port': 0, 'Service-Type': 'Login-User', 'NAS-Identifier': 'trillian', 'Called-Station-Id': '00-04-5F-00-0F-D1', 'Calling-Station-Id': '00-01-24-80-B3-9C', 'Framed-IP-Address': '10.0.0.100', }) try: print('Sending authentication request') reply = srv.SendPacket(req) except pyrad.client.Timeout: print('RADIUS server does not reply') sys.exit(1) except socket.error as error: print('Network error: ' + error[1]) sys.exit(1) if reply.code == pyrad.packet.AccessAccept: print('Access accepted') else: print('Access denied') print('Attributes returned by server:') for key, value in reply.items(): print(f'{key} {value}') if __name__ == '__main__': dictionary = path.join(path.dirname(path.abspath(__file__)), 'dictionary') main(dictionary)