ورود

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : script mikrotik



hdzj
January 15th, 2012, 22:30
test is pppoe-client
قسمتی از اسکریپتی که دارم مینویسم این موضوعه که وقتی کاربری با test کانکت شد یوزtest در ppp secret
غیر فعال شود.
این اسکریپ کار نمیکند





/ppp secret disable {/ppp active find name=test}

دوستان پیشنهادی دارند.
سوال هم اینه :
test is pppoe-client
وقتی کاربری با test کانکت شد یوزtest در ppp secret
غیر فعال شود.
فقط اسکریپت میخوام.


---------- Post added at 10:30 PM ---------- Previous post was at 08:33 PM ----------

:-?

hdzj
January 16th, 2012, 17:42
test is pppoe-client


قسمتی از اسکریپتی که دارم مینویسم این موضوعه که وقتی کاربری با test کانکت شد یوزtest در ppp secret
غیر فعال شود.
این اسکریپ کار نمیکند





/ppp secret disable {/ppp active find name=test}

دوستان پیشنهادی دارند.
سوال هم اینه :
test is pppoe-client
وقتی کاربری با test کانکت شد یوزtest در ppp secret
غیر فعال شود.
فقط اسکریپت میخوام.



---------- Post added at 10:30 PM ---------- Previous post was at 08:33 PM ----------

:-?

جواب

:do {
:local a [:len [/ppp active find name="test"]]
:if ($a="1") do={
/ppp secret disable test
}}



حالا من اینو برای چی میخواستم.
از من خواسته شده بود که اسکریپتی بنویسم(فقط اسکریپت نه راه دیگری) که کاربر بتواند در هر ۲۴ ساعت فقط یک بار با یوزر test با محدودیت مثلا 2M, در هر ساعتی که خواست وصل شود و استفاده کند. و وقتی 2M استفاده کرد قطع شود تا فردا.
در صورتی که کاربر تا قبل از تمام شدن 2M ارتباط را قطع کند دیگه تا فردا نمیتواند وصل شود.

راه حل من این بود که یک یوزر به نام test با محدودیت 2M بسازم .
حالا با اسکریپت زیر میگوییم که یوزر test را فعال کن. کی؟؟
در زمانبندی میکروتیک هم میگوییم که هر روز ساعت مثلا ۸ صبح اسکریپت زیر انجام شود.



/ppp secret enable [/ppp secret find name=test]



خوب همونطور که میدونیم وقتی کاربر با یوزر test وصل میشود, اسم یوزر test در قسمت /ppp active اضافه میشود.
هر گاه بخواهیم یوزر test را قطع کنیم باید از همین قسمت ppp active(یا interface) آنرا پاک کنیم.
نکته: وقتی یوزر test کانکت است اگر ما یوزر test را در قسمت /ppp secret غیر فعال کنیم ارتباط قطع نمیشود تا زمانی که بخواهد دوباره کانکت شود.
پس ما از این نکته استفاده میکنیم.
در اسکریپت زیر میگوییم که یوزر test را در قسمت /ppp secret غیر فعال کن اگر test در قسمت ppp active وجود داشت.
یعنی کاربر به محض کانکت شدن با یوزر test باعث میشود که test در قسمت /ppp secret غیر فعال شود تا فردا ساعت ۸ صبح که دوباره فعال شود.
در زمانبندی میکروتیک هم میگوییم که هر ۱ ثانیه اسکریپت زیر را اجرا کن.




:do {
:local a [:len [/ppp active find name="test"]]
:if ($a="1") do={
/ppp secret disable test
}}

من به منطقی بودن یا اشتباه بودن یا .... این سوال(فقط با اسکریپت) کاری ندارم.
چیزی بود که از من خواسته شده بود من هم حس کردم اینجا بزارم شاید مفید باشه.