| rlm_expr(5) | FreeRADIUS Module | rlm_expr(5) |
نام (NAME)
rlm_expr - ماژول انجام محاسبات ریاضی در FreeRADIUS
توضیحات (DESCRIPTION)
ماژول rlm_expr به سرور اجازه میدهد تا محاسبات ریاضی محدودی را انجام دهد. این ماژول به طور مستقیم در هیچ بخشی فراخوانی نمیشود، بلکه از طریق بسط پویای رشتهها فعال میگردد.
برای مثال، برخی از دستگاههای NAS یک مشخصه NAS-Port ارسال میکنند که یک عدد ۳۲ بیتی متشکل از پورت، کارت و رابط است و هرکدام در بایتهای متفاوتی قرار دارند. برای مشاهده این مشخصهها به صورت تفکیکشده، میتوانید ورودیای مانند زیر در فایل 'users' داشته باشید:
DEFAULT
Vendor-Interface = `%{expr: %{NAS-Port} / (256 * 256)}`,
Vendor-Card = `%{expr: (%{NAS-Port} / 256) %% 256}`,
Vendor-Port = `%{expr: %{NAS-Port} %% 256}`
که در آن مشخصههای Vendor-Interface ،Vendor-Card و Vendor-Port مشخصههایی هستند که توسط شما یا فرهنگنامه ارائهشده از سوی سازنده تعریف شدهاند.
عملگرهای ریاضی پشتیبانیشده توسط ماژول عبارتها عبارتند از:
- +
- جمع
- -
- تفریق
- /
- تقسیم
- %%
- باقیمانده تقسیم (مدول)
- *
- ضرب
- &
- AND بولی (منطقی)
- |
- OR بولی (منطقی)
- ()
- گروهبندی زیرعبارتها
نکته: عملگر باقیمانده تقسیم '%%' است و نه '%'. این موضوع به دلیل استفاده از نویسه '%' به عنوان نویسه ویژه برای ترجمه پویا است.
نکته: این عملگرها هیچگونه حق تقدمی (precedence) ندارند. پردازش رشته ورودی و محاسبه پاسخ، دقیقاً از چپ به راست انجام میشود. اگر میخواهید ترتیبی در عبارات اعمال کنید، باید همانطور که در مثال قبلی نشان داده شد، آنها را در زیرعبارتها گروهبندی کنید.
تمامی محاسبات به صورت اعداد صحیح ۳۲ بیتی بدون علامت انجام میشوند.
پیکربندی (CONFIGURATION)
modules {
...
expr {
}
...
}
...
instantiate {
...
expr
...
}
بخشها (SECTIONS)
instantiate
فایلها (FILES)
/etc/raddb/radiusd.conf
همچنین ببینید (SEE ALSO)
نویسندگان (AUTHORS)
Chris Parker, cparker@segv.org
| 5 February 2004 |