函数名称:radius_get_tagged_attr_data()
函数描述:该函数用于获取RADIUS报文中指定标签的属性数据。
适用版本:PHP 4 >= 4.0.5, PHP 5, PHP 7
语法:radius_get_tagged_attr_data(resource $radius_handle, string $data)
参数:
- $radius_handle:RADIUS连接句柄,通过radius_auth_open()或radius_acct_open()函数返回的资源。
- $data:包含RADIUS报文的二进制数据。
返回值:成功时返回对应属性的值,失败时返回 FALSE。
示例:
// 创建RADIUS连接句柄
$radius_handle = radius_auth_open();
// 连接到RADIUS服务器
radius_add_server($radius_handle, "localhost", 1812, "secret", 5, 3);
// 发送认证请求
if (radius_send_request($radius_handle, RADIUS_ACCESS_REQUEST)) {
// 接收响应
if (radius_receive_packet($radius_handle)) {
// 获取指定标签的属性数据
$data = radius_get_tagged_attr_data($radius_handle, $packet);
if ($data !== false) {
echo "属性数据:$data";
} else {
echo "无法获取属性数据";
}
} else {
echo "无法接收响应";
}
} else {
echo "无法发送请求";
}
// 关闭RADIUS连接
radius_close($radius_handle);
注意事项:
- 在调用该函数之前,必须先使用radius_auth_open()或radius_acct_open()函数创建一个RADIUS连接句柄。
- 通过radius_add_server()函数添加RADIUS服务器的信息。
- 使用radius_send_request()函数发送认证请求。
- 使用radius_receive_packet()函数接收RADIUS服务器的响应。
- $packet参数用于传递接收到的RADIUS报文数据。
- 该函数仅适用于RADIUS报文中使用了标签属性的情况,如果报文中没有指定标签的属性,将返回 FALSE。
- 如果函数执行成功,将返回对应标签的属性值,否则返回 FALSE。
- 在使用完毕后,需要调用radius_close()函数关闭RADIUS连接句柄。