PHP 大会日本 2024

RADIUS 属性类型

这些常量定义了 RADIUS 属性类型,可与 radius_put_addr()radius_put_attr()radius_put_int()radius_put_string() 一起使用。

RADIUS_USER_NAME (int)

用户名称属性。属性值应为包含正在进行身份验证的用户名称的 string,可以使用 radius_put_attr() 设置。

RADIUS_USER_PASSWORD (int)

用户密码属性。属性值应为包含用户密码的 string,可以使用 radius_put_attr() 设置。此值将在传输过程中被混淆,如 » RFC 2865 第 5.2 节 中所述。

RADIUS_CHAP_PASSWORD (int)

Chap 密码属性。属性值应为一个 string,其第一个字节包含 CHAP 标识符,后续 16 个字节包含 CHAP 标识符、明文密码和 CHAP 挑战值的 MD5 哈希值连接在一起。请注意,CHAP 挑战值也应在 RADIUS_CHAP_CHALLENGE 属性中单独发送。

示例 #1 使用 CHAP 密码

<?php
// 首先,我们将创建一个身份验证句柄和请求。
$radh = radius_auth_open();
radius_add_server($radh, $server, $port, $secret, 3, 3);
radius_create_request($radh, RADIUS_ACCESS_REQUEST);

// 假设 $password 包含明文密码,我们现在:

// 生成一个挑战。
$challenge = mt_rand();

// 指定一个 CHAP 标识符。
$ident = 1;

// 添加 Chap 密码属性。
$cp = hash('md5', pack('Ca*', $ident, $password.$challenge), true);
radius_put_attr($radh, RADIUS_CHAP_PASSWORD, pack('C', $ident).$cp);

// 添加 Chap 挑战属性。
radius_put_attr($radh, RADIUS_CHAP_CHALLENGE, $challenge);

/* 从这里,您可以添加其余属性并
* 调用 radius_send_request()。 */
?>

RADIUS_NAS_IP_ADDRESS (int)

NAS IP 地址属性。属性值应为 RADIUS 客户端的 IP 地址,编码为 int,可以使用 radius_put_addr() 设置。

RADIUS_NAS_PORT (int)

NAS 端口属性。属性值应为 RADIUS 客户端上用户的物理端口,编码为 int,可以使用 radius_put_int() 设置。

RADIUS_SERVICE_TYPE (int)

服务类型属性。属性值指示用户请求的服务类型,应为 int,可以使用 radius_put_int() 设置。

提供了一些常量来表示此属性的可能值。它们包括

RADIUS_FRAMED_PROTOCOL (int)

帧协议属性。属性值应为 int,指示要用于帧访问的帧类型,可以使用 radius_put_int() 设置。可能的属性值包括这些常量

RADIUS_FRAMED_IP_ADDRESS (int)

帧 IP 地址属性。属性值应为用户网络的地址,编码为 int,可以使用 radius_put_addr() 设置,并使用 radius_cvt_addr() 检索。

RADIUS_FRAMED_IP_NETMASK (int)

帧 IP 网络掩码属性。属性值应为用户网络的网络掩码,编码为 int,可以使用 radius_put_addr() 设置,并使用 radius_cvt_addr() 检索。

RADIUS_FRAMED_ROUTING (int)

帧路由属性。属性值应为 int,指示用户的路由方法,可以使用 radius_put_int() 设置。

可能的值包括

  • 0:无路由
  • 1:发送路由数据包
  • 2:侦听路由数据包
  • 3:发送和侦听

RADIUS_FILTER_ID (int)

Filter-ID 属性。属性值应为特定于实现的、人类可读的字符串 过滤器,可以使用 radius_put_attr() 设置。

RADIUS_FRAMED_MTU (整数)

Framed-MTU 属性。属性值应为一个 整数,表示要为用户配置的 MTU,可以使用 radius_put_int() 设置。

RADIUS_FRAMED_COMPRESSION (整数)

Framed-Compression 属性。属性值应为一个 整数,表示要使用的压缩协议,可以使用 radius_put_int() 设置。可能的值包括以下常量

RADIUS_LOGIN_IP_HOST (整数)

Login-IP-Host 属性。属性值应为连接用户的 IP 地址,编码为 整数,可以使用 radius_put_addr() 设置。

RADIUS_LOGIN_SERVICE (整数)

Login-Service 属性。属性值是一个 整数,表示在登录主机上连接用户的服务。该值可以通过 radius_cvt_int() 转换为 PHP 整数。

RADIUS_LOGIN_TCP_PORT (整数)

Login-TCP-Port 属性。属性值是一个 整数,表示在登录主机上连接用户的端口。该值可以通过 radius_cvt_int() 转换为 PHP 整数。

RADIUS_REPLY_MESSAGE (整数)

Reply-Message 属性。属性值是一个 字符串,包含可能显示给用户的文本,以响应访问请求。

RADIUS_CALLBACK_NUMBER (整数)

Callback-Number 属性。属性值是一个 字符串,包含用于回拨的拨号字符串。

RADIUS_CALLBACK_ID (整数)

Callback-Id 属性。属性值是一个 字符串,包含要呼叫位置的特定于实现的名称。

RADIUS_FRAMED_ROUTE (整数)

Framed-Route 属性。属性值是一个 字符串,包含要为用户配置的特定于实现的路由集。

RADIUS_FRAMED_IPX_NETWORK (整数)

Framed-IPX-Network 属性。属性值是一个 整数,包含要为用户配置的 IPX 网络,或 0xFFFFFFFE 表示 RADIUS 客户端应选择网络,并且可以通过 radius_cvt_int() 访问。

RADIUS_STATE (整数)

State 属性。属性值是一个特定于实现的 字符串,包含在来自服务器的 Access-Challenge 中,必须包含在随后的 Access-Request 中,可以使用 radius_put_attr() 设置。

RADIUS_CLASS (整数)

Class 属性。属性值是一个任意 字符串,包含在 Access-Accept 消息中,然后应发送到 Accounting-Request 消息中的计费服务器,可以使用 radius_put_attr() 设置。

RADIUS_VENDOR_SPECIFIC (整数)

Vendor-Specific 属性。通常,应使用 radius_put_vendor_addr()radius_put_vendor_attr()radius_put_vendor_int()radius_put_vendor_string() 设置供应商属性值,而不是直接设置。

此常量主要用于解释来自 RADIUS 服务器的响应中的供应商特定属性;当接收到供应商特定属性时,应使用 radius_get_vendor_attr() 函数访问供应商 ID、属性类型和属性值。

RADIUS_SESSION_TIMEOUT (整数)

会话超时

RADIUS_IDLE_TIMEOUT (整数)

空闲超时

RADIUS_TERMINATION_ACTION (整数)

终止操作

RADIUS_CALLED_STATION_ID (整数)

被叫方站号

RADIUS_CALLING_STATION_ID (整数)

主叫方站号

RADIUS_NAS_IDENTIFIER (整数)

NAS ID

RADIUS_PROXY_STATE (整数)

代理状态

RADIUS_LOGIN_LAT_SERVICE (整数)

登录 LAT 服务

RADIUS_LOGIN_LAT_NODE (整数)

登录 LAT 节点

RADIUS_LOGIN_LAT_GROUP (整数)

登录 LAT 组

帧封装 AppleTalk 链路

RADIUS_FRAMED_APPLETALK_NETWORK (整数)

帧封装 AppleTalk 网络

RADIUS_FRAMED_APPLETALK_ZONE (整数)

帧封装 AppleTalk 区域

RADIUS_CHAP_CHALLENGE (整数)

质询

RADIUS_NAS_PORT_TYPE (整数)

NAS 端口类型,其中之一

RADIUS_PORT_LIMIT (整数)

端口限制

RADIUS_LOGIN_LAT_PORT (整数)

登录 LAT 端口

RADIUS_CONNECT_INFO (整数)

连接信息

RADIUS_ACCT_STATUS_TYPE (整数)

计费状态类型,其中之一

RADIUS_ACCT_DELAY_TIME (整数)

计费延迟时间

RADIUS_ACCT_INPUT_OCTETS (整数)

计费输入字节数

RADIUS_ACCT_OUTPUT_OCTETS (整数)

计费输出字节数

RADIUS_ACCT_SESSION_ID (整数)

计费会话 ID

RADIUS_ACCT_AUTHENTIC (整数)

计费身份验证,其中之一

RADIUS_ACCT_SESSION_TIME (整数)

计费会话时间

RADIUS_ACCT_INPUT_PACKETS (整数)

计费输入数据包数

RADIUS_ACCT_OUTPUT_PACKETS (整数)

计费输出数据包

RADIUS_ACCT_TERMINATE_CAUSE (int)

计费终止原因,其中之一

RADIUS_ACCT_MULTI_SESSION_ID (int)

计费多会话ID

计费链路计数

服务类型常量
RADIUS_LOGIN
RADIUS_FRAMED
RADIUS_CALLBACK_LOGIN
RADIUS_CALLBACK_FRAMED
RADIUS_OUTBOUND
RADIUS_ADMINISTRATIVE
RADIUS_NAS_PROMPT
RADIUS_AUTHENTICATE_ONLY
RADIUS_CALLBACK_NAS_PROMPT
帧协议常量
RADIUS_PPP
RADIUS_SLIP
RADIUS_ARAP
RADIUS_GANDALF
RADIUS_XYLOGICS
帧压缩常量
RADIUS_COMP_NONE
RADIUS_COMP_VJ
RADIUS_COMP_IPXHDR
RADIUS_COMP_STAC_LZS
NAS端口类型常量
RADIUS_ASYNC
RADIUS_SYNC
RADIUS_ISDN_SYNC
RADIUS_ISDN_ASYNC_V120
RADIUS_ISDN_ASYNC_V110
RADIUS_VIRTUAL
RADIUS_PIAFS
RADIUS_HDLC_CLEAR_CHANNEL
RADIUS_X_25
RADIUS_X_75
RADIUS_G_3_FAX
RADIUS_SDSL
RADIUS_ADSL_CAP
RADIUS_ADSL_DMT
RADIUS_IDSL
RADIUS_ETHERNET
RADIUS_XDSL
RADIUS_CABLE
RADIUS_WIRELESS_OTHER
RADIUS_WIRELESS_IEEE_802_11
计费状态类型常量
RADIUS_START
RADIUS_STOP
RADIUS_ACCOUNTING_ON
RADIUS_ACCOUNTING_OFF
计费认证常量
RADIUS_AUTH_RADIUS
RADIUS_AUTH_LOCAL
RADIUS_AUTH_REMOTE
计费终止原因常量
RADIUS_TERM_USER_REQUEST
RADIUS_TERM_LOST_CARRIER
RADIUS_TERM_LOST_SERVICE
RADIUS_TERM_IDLE_TIMEOUT
RADIUS_TERM_SESSION_TIMEOUT
RADIUS_TERM_ADMIN_RESET
RADIUS_TERM_ADMIN_REBOOT
RADIUS_TERM_PORT_ERROR
RADIUS_TERM_NAS_ERROR
RADIUS_TERM_NAS_REQUEST
RADIUS_TERM_NAS_REBOOT
RADIUS_TERM_PORT_UNNEEDED
RADIUS_TERM_PORT_PREEMPTED
RADIUS_TERM_PORT_SUSPENDED
RADIUS_TERM_SERVICE_UNAVAILABLE
RADIUS_TERM_CALLBACK
RADIUS_TERM_USER_ERROR
RADIUS_TERM_HOST_REQUEST
添加注释

用户贡献的注释 1 条注释

匿名
9 年前
为了修复缺少Acct-Status-Type的“Alive”,只需

define('RADIUS_ALIVE', 3);
To Top