mapik / radius-client
A PHP RADIUS client implementation
Installs: 3 147
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 3
Open Issues: 0
Requires
- php: >=7.4
- ext-sockets: *
- clue/socket-raw: ^1.6
- marc-mabe/php-enum: ^4.0
- paragonie/random_compat: ^2.0
Requires (Dev)
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ~8.5.0 || ^9.3
- psalm/phar: ^4.11
- symfony/console: ^6.1
- symfony/var-dumper: ^6.1
- twig/twig: ^3.4
This package is auto-updated.
Last update: 2024-11-06 15:56:11 UTC
README
mapik/radius-client is a PHP 5.5+ RADIUS client implementation.
Installation
The preferred method of installation is via Packagist and Composer. Run the following command to install the package and add it as a requirement to your project's composer.json
:
composer require mapik/radius-client
Usage
<?php use Mapik\RadiusClient\Client; use Mapik\RadiusClient\Packet; use Mapik\RadiusClient\PacketType; $client = new Client('udp://127.0.0.1:1812', /* timeout */ 2); $response = $client->send(new Packet(PacketType::ACCESS_REQUEST(), /* secret */ 'xyzzy5461', [ 'User-Name' => 'nemo', 'User-Password' => 'arctangent', ])); if ($response->getType() !== PacketType::ACCESS_ACCEPT()) { throw new \RuntimeException('Unable to authenticate as user "nemo"'); }
Dictionary
The following RADIUS dictionaries are supported out-of-the-box:
- MikroTik
- RFC 2865
- RFC 2866
- RFC 2867
- RFC 2868
- RFC 2869
- RFC 3162
- RFC 3576
- RFC 3580
- RFC 4072
- RFC 4372
- RFC 4603
- RFC 4675
- RFC 4679
- RFC 4818
- RFC 4849
- RFC 5090
- RFC 5176
Custom Dictionary
Additional attributes can be registered by creating a custom dictionary class that implements Mapik\RadiusClient\DictionaryInterface
.
Copyright and License
The mapik/radius-client library is copyright © Jonas Stendahl and licensed for use under the MIT License (MIT). Please see LICENSE for more information.