PHP8 RADIUS Attribute Types
这些常量定义了可用于radius_put_addr()、radius_put_attr()、radius_put_int()和radius_put_string()的RADIUS属性类型。
RADIUS_USER_NAME
(int)
User-Name属性。预期该属性值是包含正在进行身份验证的用户姓名的字符串,并可使用radius_put_attr()进行设置。
RADIUS_USER_PASSWORD
(int)
User-Password属性。预期该属性值是包含用户密码的字符串,并可使用radius_put_attr()进行设置。根据RFC 2865的第5.2节,此值在传输时将进行混淆。
RADIUS_CHAP_PASSWORD
(int)
Chap-Password属性。预期该属性值是一个字符串,其中第一个字节包含CHAP标识符,后续的16字节包含CHAP标识符、明文密码和CHAP挑战值的MD5哈希值连接在一起。请注意,CHAP挑战值还应该分别在RADIUS_CHAP_CHALLENGE属性中单独发送。
示例 #1 Using CHAP passwords
<?php
// Firstly, we'll create an authentication handle and request.
$radh = radius_auth_open();
radius_add_server($radh, $server, $port, $secret, 3, 3);
radius_create_request($radh, RADIUS_ACCESS_REQUEST);
// Assuming $password contains the plaintext password, we now:
// Generate a challenge.
$challenge = mt_rand();
// Specify a CHAP identifier.
$ident = 1;
// Add the Chap-Password attribute.
$cp = md5(pack('Ca*', $ident, $password.$challenge), true);
radius_put_attr($radh, RADIUS_CHAP_PASSWORD, pack('C', $ident).$cp);
// Add the Chap-Challenge attribute.
radius_put_attr($radh, RADIUS_CHAP_CHALLENGE, $challenge);
/* From here, you would add the remaining attributes and
* call radius_send_request(). */
?>
RADIUS_NAS_IP_ADDRESS
(int)
NAS-IP-Address属性。预期该属性值是将RADIUS客户端的IP地址编码为int,并可使用radius_put_addr()进行设置。
RADIUS_NAS_PORT
(int)
NAS-Port属性。预期该属性值是用户在RADIUS客户端上的物理端口,编码为int,并可使用radius_put_int()进行设置。
RADIUS_SERVICE_TYPE
(int)
Service-Type属性。该属性值指示用户请求的服务类型,预期为int,并可使用radius_put_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_FRAMED_PROTOCOL
(int)
Framed-Protocol属性。该属性值预期为int,指示用于帧访问的帧传输方式,并可使用radius_put_int()进行设置。可能的属性值包括以下常量:
RADIUS_PPP RADIUS_SLIP RADIUS_ARAP RADIUS_GANDALF RADIUS_XYLOGICS
RADIUS_FRAMED_IP_ADDRESS
(int)
Framed-IP-Address属性。该属性值预期为用户网络地址的int编码,可使用radius_put_addr()进行设置,使用radius_cvt_addr()进行检索。
RADIUS_FRAMED_IP_NETMASK
(int)
Framed-IP-Netmask属性。该属性值预期为用户网络的子网掩码的int编码,可使用radius_put_addr()进行设置,使用radius_cvt_addr()进行检索。
RADIUS_FRAMED_ROUTING
(int)
Framed-Routing属性。该属性值预期为指示用户路由方法的int,可使用radius_put_int()进行设置。
可能的值包括:
0:不进行路由 1:发送路由数据包 2:监听路由数据包 3:发送和监听
RADIUS_FILTER_ID
(int)
Filter-ID属性。该属性值预期为实现特定的、人可读的过滤器字符串,可使用radius_put_attr()进行设置。
RADIUS_FRAMED_MTU
(int)
Framed-MTU属性。该属性值预期为用户配置的MTU的int,可使用radius_put_int()进行设置。
RADIUS_FRAMED_COMPRESSION
(int)
Framed-Compression属性。该属性值预期为指示要使用的压缩协议的int,并可使用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
(int)
Login-IP-Host属性。该属性值预期为用户连接的IP地址的int编码,可使用radius_put_addr()进行设置。
RADIUS_LOGIN_SERVICE
(int)
Login-Service属性。该属性值为int,指示用户在登录主机上连接的服务。该值可以通过radius_cvt_int()转换为PHP整数。
RADIUS_LOGIN_TCP_PORT
(int)
Login-TCP-Port属性。该属性值为int,指示用户在登录主机上连接的端口。该值可以通过radius_cvt_int()转换为PHP整数。
RADIUS_REPLY_MESSAGE
(int)
Reply-Message属性。该属性值为包含文本的字符串,可用于响应访问请求时向用户显示消息。
RADIUS_CALLBACK_NUMBER
(int)
Callback-Number属性。该属性值为包含回拨的拨号字符串的字符串。
RADIUS_CALLBACK_ID
(int)
Callback-Id属性。该属性值为包含要呼叫的地方的实现特定名称的字符串。
RADIUS_FRAMED_ROUTE
(int)
Framed-Route属性。该属性值为包含要为用户配置的一组实现特定路由的字符串。
RADIUS_FRAMED_IPX_NETWORK
(int)
Framed-IPX-Network属性。该属性值为int,包含要为用户配置的IPX网络,或者为0xFFFFFFFE,表示RADIUS客户端应选择网络,可通过radius_cvt_int()访问。
RADIUS_STATE
(int)
State属性。该属性值为包含在来自服务器的Access-Challenge中的实现定义字符串,必须包含在后续的Access-Request中,并可使用radius_put_attr()进行设置。
RADIUS_CLASS
(int)
Class属性。该属性值为包含在Access-Accept消息中的任意字符串,然后应发送到会计服务器中的Accounting-Request消息中,可使用radius_put_attr()进行设置。
RADIUS_VENDOR_SPECIFIC
(int)
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
(int)
会话超时
RADIUS_IDLE_TIMEOUT
(int)
空闲超时
RADIUS_TERMINATION_ACTION
(int)
终止操作
RADIUS_CALLED_STATION_ID
(int)
被呼叫站点ID
RADIUS_CALLING_STATION_ID
(int)
呼叫站点ID
RADIUS_NAS_IDENTIFIER
(int)
NAS标识
RADIUS_PROXY_STATE
(int)
代理状态
RADIUS_LOGIN_LAT_SERVICE
(int)
登录LAT服务
RADIUS_LOGIN_LAT_NODE
(int)
登录LAT节点
RADIUS_LOGIN_LAT_GROUP
(int)
登录LAT组
RADIUS_FRAMED_APPLETALK_LINK
(int)
帧链接
RADIUS_FRAMED_APPLETALK_NETWORK
(int)
帧Appletalk网络
RADIUS_FRAMED_APPLETALK_ZONE
(int)
帧Appletalk区域
RADIUS_CHAP_CHALLENGE
(int)
挑战
RADIUS_NAS_PORT_TYPE
(int)
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
(int)
端口限制
RADIUS_LOGIN_LAT_PORT
(int)
登录LAT端口
RADIUS_CONNECT_INFO
(int)
连接信息
RADIUS_ACCT_STATUS_TYPE
(int)
会计状态类型,包括:
- RADIUS_START
- RADIUS_STOP
- RADIUS_ACCOUNTING_ON
- RADIUS_ACCOUNTING_OFF
RADIUS_ACCT_DELAY_TIME
(int)
会计延迟时间
RADIUS_ACCT_INPUT_OCTETS
(int)
会计输入字节
RADIUS_ACCT_OUTPUT_OCTETS
(int)
会计输出字节
RADIUS_ACCT_SESSION_ID
(int)
会计会话ID
RADIUS_ACCT_AUTHENTIC
(int)
会计认证,包括:
- RADIUS_AUTH_RADIUS
- RADIUS_AUTH_LOCAL
- RADIUS_AUTH_REMOTE
RADIUS_ACCT_SESSION_TIME
(int)
会计会话时间
RADIUS_ACCT_INPUT_PACKETS
(int)
会计输入数据包
RADIUS_ACCT_OUTPUT_PACKETS
(int)
会计输出数据包
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)
会计链路计数