为了修复缺少Acct-Status-Type的“Alive”,只需
define('RADIUS_ALIVE', 3);
这些常量定义了 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_COMP_NONE
:无压缩RADIUS_COMP_VJ
:VJ TCP/IP 报头压缩RADIUS_COMP_IPXHDR
:IPX 报头压缩RADIUS_COMP_STAC_LZS
:Stac-LZS 压缩(在 PECL radius 1.3.0b2 中添加)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 组
RADIUS_FRAMED_APPLETALK_LINK
(整数)帧封装 AppleTalk 链路
RADIUS_FRAMED_APPLETALK_NETWORK
(整数)帧封装 AppleTalk 网络
RADIUS_FRAMED_APPLETALK_ZONE
(整数)帧封装 AppleTalk 区域
RADIUS_CHAP_CHALLENGE
(整数)质询
RADIUS_NAS_PORT_TYPE
(整数)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_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_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
RADIUS_ACCT_MULTI_SESSION_ID
(int)计费多会话ID
RADIUS_ACCT_LINK_COUNT
(int)计费链路计数
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_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_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_CALLBACK
RADIUS_TERM_USER_ERROR
RADIUS_TERM_HOST_REQUEST