Некоторые слова и выражения, употребимые в правилах
Имя | Стековая нотация | Комментарий |
IP= | ( "ip_address" -- flag ) | flag-истина, если клиент соединился с сервером по указанному IP e.g.: IP= 10.0.0.1 |
Port= | ( "port" -- flag ) | flag-истина, если клиент соединился с сервером по указанному порту |
IP:Port= | ( "ip_address:port" -- flag ) | flag-истина, если клиент соединился с сервером по указанному IP и порту |
PeerIP:Port= | ( "ip_address:port" -- flag ) | flag-истина, если клиент соединился с указанного IP и порта |
PeerIP= | ( "ip_address" -- flag ) | flag-истина, если клиент соединился с указанного IP |
PeerPort= | ( "port" -- flag ) | flag-истина, если клиент соединился с сервером с указанного порта |
PeerIP:Mask= | ( "ip:mask" -- flag ) | flag-истина, если клиент соединился с сервером с указанного диапазона IP-адресов e.g.: PeerIP:Mask= 10.0.0.0:255.255.255.0 |
CLIENT | ( -- addr u ) | PeerIP NtoA (ip-адрес клиента в виде строки) |
=~ | ( addr u "mask" -- flag ) | сравнение строки, представленой адресом и длиной, с маской. e.g.: ""URL =~ http://* "" |
~ | ( str "mask" -- flag ) | сравнение по маске со строкой, представленой str |
User | ( -- addr u ) | возвращает имя пользователя ( u = 0, если имени нет) e.g.: User =~ admin даст true если пользователь admin. |
URL | ( -- addr u ) | возвращает запрашиваемый клиентом URL (для proxy) |
TARGET-HOST | ( -- addr u ) | возвращает целевой хост (для proxy) |
IsGroupMember: | ( "group" -- flag ) | принадлежит ли текущий юзер указанной группе. e.g.: IsGroupMember: "Advanced users" Должен быть включен http-proxy\plugins\acl |
IsMember | ( group-a group-u -- flag ) | принадлежит ли текущий юзер указанной группе из списка Eserv/2. e.g.: ""S" MyGroup" IsMember ""
Должен быть включен plugins\groups_e2 |
IsMember: | ( "group" -- flag ) | принадлежит ли текущий юзер указанной группе из списка Eserv/2. e.g.: IsMember: MyGroup Должен быть включен plugins\groups_e2 |
NtIsMemberOf | ( usera useru groupa groupu -- flag ) | принадлежит ли заданный юзер заданной группе NT e.g.: ""User S" MyGroup" NtIsMemberOf "" Должен быть включен plugins\auth_lib |
NtIsMemberOf: | ( usera useru "group" -- flag ) | принадлежит ли заданный юзер заданной группе NT e.g.: User NtIsMemberOf: MyGroup Должен быть включен plugins\auth_lib |
DayOfWeek: | ( "n1-n2" -- flag ) | flag=true, если текущий день недели в заданном диапазоне (воскресенье — 0). e.g.: DayOfWeek: 1-5 ( понедельник-пятница ) |
TimeInterval: | ( "hh:mm-hh:mm" -- flag ) | flag=true, если текущее время суток в заданном интервале. e.g.: TimeInterval: 8:30-17:00 |
Time: | ( "hh:mm" -- flag ) | flag=true, если текущее время суток совпадает с заданным. e.g.: Time: 13:00 |
\EOF | ( -- ) | закончить трансляцию текущего файла (не проверяя остальные правила) |
AND | ( flag1 flag2 -- flag ) | flag = flag1 AND flag2 Для флагов — логическое И, для чисел — побитовое. |
OR | ( flag1 flag2 -- flag ) | flag = flag1 OR flag2 Для флагов — логическое ИЛИ, для чисел — побитовое. |
XOR | ( flag1 flag2 -- flag ) | flag = flag1 XOR flag2 Для флагов — логическое ИсключающееИЛИ, для чисел — побитовое. |
0= | ( x -- flag ) | возвращает true(-1), если x=0 и false(0), если x<>0 |
0<> | ( x -- flag ) | возвращает true(-1), если x<>0 и false(0), если x=0 |