ابوشهاب12
2018/11/25, 12:06 AM
السلام عليكم
يوجد سكربت تحديد الايام لكروت الهوت سبوت...
-- :global todayHours; -- :local d [ /system clock get date ]; :local t [ /system clock get time ]; :set d ($d." ".$t); :local montharray ( "jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec" ); :local monthdays ( 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30 ); :local days [ :pick $d 4 6 ]; :local monthtxt [ :pick $d 0 3 ]; :local year [ :pick $d 9 11 ]; :local monthsIndex ([ :find $montharray $monthtxt]); :local h [ :pick $d 12 14 ]; :local m [ :pick $d 15 17 ]; :local s [ :pick $d 18 20 ]; :for nodays from=0 to=$monthsIndex do=-- :set days ( $days + [ :pick $monthdays $nodays ] ); }; :set days ($days + $year * 365); :local totalHours ($h + ($days * 24)); :set todayHours $totalHours; }; :foreach i in=[ /ip hotspot user find where disabled=no ] do=-- :if ([ :find [ /ip hotspot user get $i comment ] ] = 0 && [ :find [ /ip hotspot user get $i email ] ] = 0) do=-- :local d [ /ip hotspot user get $i comment ]; :local oldemail [ /ip hotspot user get $i email ]; :local atmark [ :find $oldemail "@" ]; :local dotmark [ :find $oldemail "." ]; :if ( $atmark >= 0 && $dotmark >= 0 ) do=-- :local validity [ :pick $oldemail 0 $atmark]; :local rest [ :pick $oldemail ($atmark + 1) [ :len $oldemail] ]; :local validityInHours false; :local hmark [ :find $validity "h" ]; :if ( $hmark >= 0) do=-- :set validityInHours true; :set validity [ :pick $validity 0 $hmark]; }; :if ( [:tonum $validity] != "" ) do=-- :if ( [:tonum $validity] != "0" ) do=-- :if ([:len $d] != 20) do=-- :set d ( $d." 00:00:00" ); }; :local montharray ( "jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec" ); :local monthdays ( 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30 ); :local days [ :pick $d 4 6 ]; :local monthtxt [ :pick $d 0 3 ]; :local year [ :pick $d 9 11 ]; :local monthsIndex ([ :find $montharray $monthtxt]); :local h [ :pick $d 12 14 ]; :local m [ :pick $d 15 17 ]; :local s [ :pick $d 18 20 ]; :for nodays from=0 to=$monthsIndex do=-- :set days ( $days + [ :pick $monthdays $nodays ] ); }; :set days ($days + $year * 365); :local totalHours ($h + ($days * 24)); :local totalValidity $validity; :if ($validityInHours = false) do=-- :set totalValidity ($validity * 24); }; :if ( ($totalHours + $totalValidity) <= $todayHours ) do=-- :local n [/ip hotspot user get $i name]; :log info "HOTSPOT VALITITY EXPIRE: Disabling Hotspot user $n first logged in $d"; [ /ip hotspot user disable $i ]; }; }; }; }; }; }; };
السكربت يعمل بشكل ممتاز ولكن المشكلة لا يطرد اليوزر صاحب الكرت المنتهي من الاكتف، هل يمكن التعديل عليه بحيث يطرد اليوزر من الاكتف وشكرا
يوجد سكربت تحديد الايام لكروت الهوت سبوت...
-- :global todayHours; -- :local d [ /system clock get date ]; :local t [ /system clock get time ]; :set d ($d." ".$t); :local montharray ( "jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec" ); :local monthdays ( 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30 ); :local days [ :pick $d 4 6 ]; :local monthtxt [ :pick $d 0 3 ]; :local year [ :pick $d 9 11 ]; :local monthsIndex ([ :find $montharray $monthtxt]); :local h [ :pick $d 12 14 ]; :local m [ :pick $d 15 17 ]; :local s [ :pick $d 18 20 ]; :for nodays from=0 to=$monthsIndex do=-- :set days ( $days + [ :pick $monthdays $nodays ] ); }; :set days ($days + $year * 365); :local totalHours ($h + ($days * 24)); :set todayHours $totalHours; }; :foreach i in=[ /ip hotspot user find where disabled=no ] do=-- :if ([ :find [ /ip hotspot user get $i comment ] ] = 0 && [ :find [ /ip hotspot user get $i email ] ] = 0) do=-- :local d [ /ip hotspot user get $i comment ]; :local oldemail [ /ip hotspot user get $i email ]; :local atmark [ :find $oldemail "@" ]; :local dotmark [ :find $oldemail "." ]; :if ( $atmark >= 0 && $dotmark >= 0 ) do=-- :local validity [ :pick $oldemail 0 $atmark]; :local rest [ :pick $oldemail ($atmark + 1) [ :len $oldemail] ]; :local validityInHours false; :local hmark [ :find $validity "h" ]; :if ( $hmark >= 0) do=-- :set validityInHours true; :set validity [ :pick $validity 0 $hmark]; }; :if ( [:tonum $validity] != "" ) do=-- :if ( [:tonum $validity] != "0" ) do=-- :if ([:len $d] != 20) do=-- :set d ( $d." 00:00:00" ); }; :local montharray ( "jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec" ); :local monthdays ( 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30 ); :local days [ :pick $d 4 6 ]; :local monthtxt [ :pick $d 0 3 ]; :local year [ :pick $d 9 11 ]; :local monthsIndex ([ :find $montharray $monthtxt]); :local h [ :pick $d 12 14 ]; :local m [ :pick $d 15 17 ]; :local s [ :pick $d 18 20 ]; :for nodays from=0 to=$monthsIndex do=-- :set days ( $days + [ :pick $monthdays $nodays ] ); }; :set days ($days + $year * 365); :local totalHours ($h + ($days * 24)); :local totalValidity $validity; :if ($validityInHours = false) do=-- :set totalValidity ($validity * 24); }; :if ( ($totalHours + $totalValidity) <= $todayHours ) do=-- :local n [/ip hotspot user get $i name]; :log info "HOTSPOT VALITITY EXPIRE: Disabling Hotspot user $n first logged in $d"; [ /ip hotspot user disable $i ]; }; }; }; }; }; }; };
السكربت يعمل بشكل ممتاز ولكن المشكلة لا يطرد اليوزر صاحب الكرت المنتهي من الاكتف، هل يمكن التعديل عليه بحيث يطرد اليوزر من الاكتف وشكرا