PHP8 RADIUS Attribute Types

2023-10-25 15:42 更新

这些常量定义了可用于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) 

会计链路计数


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号