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)

过滤器 ID 属性。属性值应为实现特定的人类可读string 过滤器,可以使用 radius_put_attr() 设置。

RADIUS_FRAMED_MTU (int)

帧 MTU 属性。属性值应为 int,指示要为用户配置的 MTU,可以使用 radius_put_int() 设置。

RADIUS_FRAMED_COMPRESSION (int)

帧压缩属性。属性值应为 int,指示要使用的压缩协议,可以使用 radius_put_int() 设置。可能的值包括以下常量

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 属性。属性值是一个 string,包含可能显示给用户以响应访问请求的文本。

RADIUS_CALLBACK_NUMBER (int)

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

RADIUS_CALLBACK_ID (int)

Callback-Id 属性。属性值是一个 string,包含要呼叫的地址的实现特定名称。

RADIUS_FRAMED_ROUTE (int)

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

RADIUS_FRAMED_IPX_NETWORK (int)

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

RADIUS_STATE (int)

State 属性。属性值是一个实现定义的 string,包含在服务器发出的 Access-Challenge 中,必须包含在随后的 Access-Request 中,可以使用 radius_put_attr() 设置。

RADIUS_CLASS (int)

Class 属性。属性值是一个任意 string,包含在 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 ID

RADIUS_PROXY_STATE (int)

代理状态

RADIUS_LOGIN_LAT_SERVICE (int)

登录 LAT 服务

RADIUS_LOGIN_LAT_NODE (int)

登录 LAT 节点

RADIUS_LOGIN_LAT_GROUP (int)

登录 LAT 组

帧式 AppleTalk 链接

RADIUS_FRAMED_APPLETALK_NETWORK (int)

帧式 AppleTalk 网络

RADIUS_FRAMED_APPLETALK_ZONE (int)

帧式 AppleTalk 区域

RADIUS_CHAP_CHALLENGE (int)

挑战

RADIUS_NAS_PORT_TYPE (int)

NAS 端口类型,其中之一

RADIUS_PORT_LIMIT (int)

端口限制

RADIUS_LOGIN_LAT_PORT (int)

登录 LAT 端口

RADIUS_CONNECT_INFO (int)

连接信息

RADIUS_ACCT_STATUS_TYPE (int)

记账状态类型,其中之一

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_ACCT_SESSION_TIME (int)

记账会话时间

RADIUS_ACCT_INPUT_PACKETS (int)

记账输入数据包

RADIUS_ACCT_OUTPUT_PACKETS (int)

记账输出数据包

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 个注释

匿名
8 年前
要解决缺少“Alive”的 Acct-Status-Type 的问题,只需

define('RADIUS_ALIVE', 3);
To Top