
جعل السرعة تشاركية للمشتركين الذين يستخدمون خاصية Shared-user




اي نفس اليوزر نيم بدون ان نثبت لهم
اي بي وكيوز (تطوير للفكرة السابقة بدل ان تتقسم السرعة على العملاء تصبح تشاركية بينهم)
1- نفعل خاصية ال shared-user في البروفايل المطلوب
وليكن مثلا العدد 3 والسرعة 512 كيلو للابلود والداون لود 1 ميكا
2- عندما يفتح اكثر من عميل بيوزر له هذا البروفايل كل يوزر ياخذ السرعة كاملة
3- الان نطبق السكربت على هذا البروفايل , كالاتي:
نضع هذا السكرتب في خانة script on-login
{
:delay 1
# ادخل سرعة الرفع والتحميل نهاية السطر ادناه
:local up 512K
:local down 1M
:local s 1
:local t
/queue simple remove [find ((dynamic=yes)&&(limit-at="0/0"))]
/queue simple remove [find ((dynamic=yes)&&(target=("$address"."/32")))]
:foreach i in=[/ip hotspot active find user="$username"] do={
:local a [/ip hotspot active get value-name=address $i]
:set a ("$a"."/32")
:if ($s=1) do={
:set t $a
/queue simple remove [find name="$username"]
/queue simple add target=$a limit-at="$up/$down" max-limit="$up/$down" name="$username"} else={
:set t ("$t".","."$a")
queue simple set target=$t [find name="$username"]
}
:set s ($s+1)
}} وهذا السكربت في خانة script on-logout
{
:delay 1
# ادخل سرعة الرفع والتحميل نهاية السطر ادناه
:local up 512K
:local down 1M
:local s 1
:local t
/queue simple remove [find ((dynamic=yes)&&(limit-at="0/0"))]
:foreach i in=[/ip hotspot active find user="$username"] do={
:local a [/ip hotspot active get value-name=address $i]
:set a ("$a"."/32")
:if ($s=1) do={
:set t $a
/queue simple remove [find name="$username"]
/queue simple add target=$a limit-at="$up/$down" max-limit="$up/$down" name="$username"} else={
:set t ("$t".","."$a")
queue simple set target=$t [find name="$username"]
}
:set s ($s+1)
}}
:local l [:len [/ip hotspot active find user="$username"]]
:if ($l=0) do={
/queue simple remove [find name="$username"]
}
نطبق هذين السكربتين على جميع البروفايلات التي نريد لها هذه الخاصية
4- نجرب السكربت
ونلاحظ كلما دخل عميل يضاف الاي بي الخاص بيه الى الكيوز وبالتالي تصبح السرعة تشاركية بين العملاء بدل ان كل عميل
ياخذ السرعة كاملة
بالامكان استخدم هذا الملف ليضاف البروفايل مباشرة لديك عن طريق نسخة ولصقه في الـNew terminal
كود PHP:
/ip hotspot user profile add name=SAW on-login="{\r\
\n:delay 1\r\
\n# \C7\CF\CE\E1 \D3\D1\DA\C9 \C7\E1\D1\DD\DA \E6\C7\E1\CA\CD\E3\ED\E1 \E4\
\E5\C7\ED\C9 \C7\E1\D3\D8\D1 \C7\CF\E4\C7\E5\r\
\n:local up 512K\r\
\n:local down 1M\r\
\n:local s 1\r\
\n:local t\r\
\n/queue simple remove [find ((dynamic=yes)&&(limit-at="0/0"))]\r\
\n/queue simple remove [find ((dynamic=yes)&&(target=("\$address"."/32\
")))]\r\
\n:foreach i in=[/ip hotspot active find user="\$username"] do={\r\
\n:local a [/ip hotspot active get value-name=address \$i]\r\
\n:set a ("\$a"."/32")\r\
\n:if (\$s=1) do={\r\
\n:set t \$a\r\
\n/queue simple remove [find name="\$username"]\r\
\n/queue simple add target=\$a limit-at="\$up/\$down" max-limit="\$up/\
\$down" name="\$username"} else={\r\
\n:set t ("\$t".","."\$a")\r\
\nqueue simple set target=\$t [find name="\$username"]\r\
\n}\r\
\n:set s (\$s+1)\r\
\n}}\r\
\n" on-logout="{\r\
\n:delay 1\r\
\n# \C7\CF\CE\E1 \D3\D1\DA\C9 \C7\E1\D1\DD\DA \E6\C7\E1\CA\CD\E3\ED\E1 \E4\
\E5\C7\ED\C9 \C7\E1\D3\D8\D1 \C7\CF\E4\C7\E5\r\
\n:local up 512K\r\
\n:local down 1M\r\
\n:local s 1\r\
\n:local t\r\
\n/queue simple remove [find ((dynamic=yes)&&(limit-at="0/0"))]\r\
\n:foreach i in=[/ip hotspot active find user="\$username"] do={\r\
\n:local a [/ip hotspot active get value-name=address \$i]\r\
\n:set a ("\$a"."/32")\r\
\n:if (\$s=1) do={\r\
\n:set t \$a\r\
\n/queue simple remove [find name="\$username"]\r\
\n/queue simple add target=\$a limit-at="\$up/\$down" max-limit="\$up/\
\$down" name="\$username"} else={\r\
\n:set t ("\$t".","."\$a")\r\
\nqueue simple set target=\$t [find name="\$username"]\r\
\n}\r\
\n:set s (\$s+1)\r\
\n}}\r\
\n:local l [:len [/ip hotspot active find user="\$username"]]\r\
\n:if (\$l=0) do={\r\
\n/queue simple remove [find name="\$username"]\r\
\n}\r\
\n\r\
\n\r\
\n" rate-limit=512K/1M shared-users=3 transparent-proxy=yes
Shared user Speed.txt
منقول للافاده
