با سلام

من چند مدت بود که میخواستم محدودیت حجمی برای کاربران trial در hotspot ایجاد کنم خیلی جستجو کردم و اسکریپتی که در سایت خود میکروتیک بود رو پیدا کردم اما جواب نداد . خوشبختانه یه کاربر میکروتیک کد رو اصلاح کرده و منتشر کرده من کد رو تست کردم و بخوبی جواب داد. و چون دیده بودم خیلی ها تو همین سایت نیاز داشتن کد رو با سایت مرجعش واستون میزارم. امیدوارم مفید باشه.

سایت مرجع

1) ابتدا در قسمت IP>HOTSPOT>USER PROFILES>ADD یک پروفایل با نام FreeUser ایجاد کنید توجه کنید که حتما با همین نام بسازید چون در اسکریپ مورد نظر بهش نیاز داریم در اینجا اگر مایل باشید میتونید محدودیت سرعت برای کاربران trial ایجاد کنید.

2) بعد برای اینکه چک کنیم هر کاربر چقدر مصرف کرده و اینکه اگر از حد مورد نظر بیشتر استفاده کرده یوزرش بسته بشه از اسکریپ زیر استفاده میکنیم که اسم این اسکریپت : limitdata میزان دانلود هم در
:local downloadlimitmb "50"
مشخص میشه که اینجا 50 مگ است

کد:
 
#Set your dowload limit in MegaBYTES!
:local downloadlimitmb "50"


### You will not need to edit anything below this line ###
:local downloadlimit  [($downloadlimitmb  * 1000)]
:local counter
:local datadown
:local username
:local macaddress
:foreach counter in=[/ip hotspot active find ] do={
:set datadown [/ip hotspot active get $counter bytes-out]
:if ($datadown>$downloadlimit) do={
:set username [/ip hotspot active get $counter user]
:set macaddress [/ip hotspot active get $counter mac-address]
/ip hotspot user remove [/ip hotspot user find where name=$username]
/ip hotspot user add name=$username limit-bytes-out=$downloadlimit mac-address=$macaddress profile=FreeUser
/ip hotspot active remove $counter
:log info "Force logout on user: $username - Reached download quota"
}}

اسکریپت دوم برای اینکه همه کاربرانی که محدودیت دانلود روشون اعمال شده ازبین برن، استفاده میشه یعنی در این اسکریپ بازه زمانی مورد نظروتون به حالت اول بر میگرده که اسم این اسکریپت : clearusers


کد:
:log info "Checking Users"
:local counter


:foreach counter in=[/ip hotspot user find profile="FreeUser" ] do={
/ip hotspot user remove $counter
}
حال باید واسشون scheduler ایجاد کنیم که بسته به سیاست شما در مجموعست. واسه اسکریپ اول 10 ثانیه میتونه خوب باشه و واسه اسکریپ دوم بستگی داره که میخواید این محدودیت رو تو چه بازه زمانی بزارید من خودم هر 6 ساعت نیاز داشتم

کد:

کد:
add disabled=no interval=10s name=DataLimit on-event=limitdata policy=\
    ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \
    start-date=oct/07/2013 start-time=00:00:00








add disabled=no interval=1d name=ClearUsers on-event=clearusers policy=\
    ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \
    start-date=jan/01/2002 start-time=00:00:01


امیدوارم مفید واقع باشه موفق باشید




موضوعات مشابه: