PHP.mk документација

Функции на радиус

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

ref.radius.php PHP.net прокси Преводот е вчитан
Оригинал на PHP.net
Патека ref.radius.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + преведен приказ Кодовите, табелите и белешките остануваат читливи во истиот тек.
Функции на радиус

Референца за `ref.radius.php` со подобрена типографија и навигација.

ref.radius.php

Функции на радиус

Содржина

  • radius_acct_open RADIUS Вендор Специфични Типови Атрибути
  • radius_add_server — Создава Radius рачка за сметководство
  • radius_auth_open — Додава сервер
  • radius_close — Создава Radius рачка за автентикација
  • radius_config — Ослободува сите ресурси
  • radius_create_request — Предизвикува библиотеката да ја прочита дадената конфигурациска датотека
  • radius_cvt_addr — Креира барање за сметководство или автентикација
  • radius_cvt_int Овој пакет е базиран на libradius (Remote Authentication Dial In User Service) од FreeBSD. Им овозможува на клиентите да вршат автентикација и сметководство преку мрежни барања до оддалечени сервери.
  • radius_cvt_string — Претвора сурови податоци во цел број
  • radius_demangle — Претвора сурови податоци во стринг
  • radius_demangle_mppe_key — Демангира податоци
  • radius_get_attr — Изведува mppe-клучеви од измангирани податоци
  • radius_get_tagged_attr_data — Извлекува атрибут
  • radius_get_tagged_attr_tag — Извлекува податоци од означен атрибут
  • radius_get_vendor_attr — Извлекува ознака од означен атрибут
  • radius_put_addr — Извлекува специфичен атрибут од производител
  • radius_put_attr — Прикачува атрибут за IP адреса
  • radius_put_int — Прикачува бинарен атрибут
  • radius_put_string — Прикачува атрибут за цел број
  • radius_put_vendor_addr — Прикачува атрибут за стринг
  • radius_put_vendor_attr — Прикачува специфичен атрибут за IP адреса од производител
  • radius_put_vendor_int — Прикачува специфичен бинарен атрибут од производител
  • radius_put_vendor_string — Прикачува специфичен атрибут за цел број од производител
  • radius_request_authenticator — Прикачува специфичен атрибут за стринг од производител
  • radius_salt_encrypt_attr — Враќа автентикатор на барање
  • radius_send_request — Соли-криптира вредност
  • radius_server_secret — Испраќа барање и чека одговор
  • radius_strerror — Враќа порака за грешка

Белешки од корисници 5 белешки

— Конвертира сурови податоци во цел број
пред 18 години
Pure PHP radius class (do not need the radius package !)

We have implemented a pure PHP radius class following the RFC 2865 rules. Using this class, it is also possible to do WWW realm authentication.

Class abstract, full class implementation (LGPL) with helper files and examples can be found at http://developer.sysco.ch/php/

<?php

// (...)

class Radius
{
    // (...)

    public function Radius($ip_radius_server = '127.0.0.1', $shared_secret = '', $radius_suffix = '', $udp_timeout = 5, $authentication_port = 1812, $accounting_port = 1813)
    {
        // (...)
    }

    // (...)

    function AccessRequest($username = '', $password = '', $udp_timeout = 0)
    {

        // (...)

        $_socket_to_server = socket_create(AF_INET, SOCK_DGRAM, 17); // UDP packet = 17
        
        if ($_socket_to_server === FALSE)
        {
            // (...)
        }
        elseif (FALSE === socket_connect($_socket_to_server, $this->_ip_radius_server, $this->_authentication_port))
        {
            // (...)
        }
        elseif (FALSE === socket_write($_socket_to_server, $packet_data, $packet_length))
        {
            // (...)
        }
        else
        {
            // (...)
            $read_socket_array   = array($_socket_to_server);
            $write_socket_array  = NULL;
            $except_socket_array = NULL;

            $received_packet = chr(0);

            if (!(FALSE === socket_select($read_socket_array, $write_socket_array, $except_socket_array, $this->_udp_timeout)))
            {
                if (in_array($_socket_to_server, $read_socket_array))
                {
                    if (FALSE === ($received_packet = @socket_read($_socket_to_server, 1024))) // @ used, than no error is displayed if the connection is closed by the remote host
                    {
                        // (...)
                    }
                    else
                    {
                        socket_close($_socket_to_server);
                    }
                }
            }
            else
            {
                socket_close($_socket_to_server);
            }
        }

        // (...)
        
        return (2 == ($this->_radius_packet_received));
    }
}

?>

Example
<?php
    require_once('radius.class.php');
    $radius = new Radius('127.0.0.1', 'secret');
    if ($radius->AccessRequest('user', 'pass'))
    {
        echo "Authentication accepted.";
    }
    else
    {
        echo "Authentication rejected.";
    }
?>
SysCo/al - развивач [at] sysco[dot] ch
19 години пред
If you are constantly getting the errormessage: 

Fatal error: Unknown function: radius_auth_open() in...

And your Server is a Windows-System (for example standard-xampp installation), you propably did not remove the comment symbol ";" in front of "extension=php_radius.dll" in php.ini.

If you did that, but get the error anyway:

Additionally be sure you edited the right php.ini, since xampp installs several php.exe's but only "xampp/apache/bin/php.ini"  is the correct one!

It did cost me 2 days to find that out!
andac dot aydin at code64 dot de
19 години пред
To expand on the simple example by jengo at phpgroupware dot org you can add a NAS IP address to the request by using:

radius_put_addr($radius, RADIUS_NAS_IP_ADDRESS, '127.0.0.1');

and not radius_put_attr or radius_put_string. I also had to use radius_put_string for the user name and password.
shaun at verticalevolution dot com
20 години пред
Here's a longer example that DOES do Challenge Response and works with SecurID Authentication Managers.

http://www.webtrotter.com/securid_radius.txt

(script wouldn't let me post it because of the long lines, plus it was too long of an example).
brett at silcon dot com
20 години пред
Here is a simple example on how to auth against radius.  Note:  This doesn't handle challenge responses.

<?php
    $radius = radius_auth_open();
    if (! radius_add_server($radius,'localhost',0,'radiussecret',5,3))
    {
        die('Radius Error: ' . radius_strerror($radius));
    }

    if (! radius_create_request($radius,RADIUS_ACCESS_REQUEST))
    {
        die('Radius Error: ' . radius_strerror($radius));
    }

    radius_put_attr($radius,RADIUS_USER_NAME,'username');
    radius_put_attr($radius,RADIUS_USER_PASSWORD,'password');

    switch (radius_send_request($radius))
    {
        case RADIUS_ACCESS_ACCEPT:
            echo 'GOOD LOGIN';
            break;
        case RADIUS_ACCESS_REJECT:
            echo 'BAD LOGIN';
            break;
        case RADIUS_ACCESS_CHALLENGE:
            echo 'CHALLENGE REQUESTED';
            break;
        default:
            die('Radius Error: ' . radius_strerror($radius));
    }
?>
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.