
{
local startTime [/system clock get time];
:global myurl "http://kenrockwell.com/canon/eos-m/18-55mm-stm/sample-images/IMG_0024.JPG"
/tool fetch url=$myurl mode=http;
local endTime [/system clock get time];
# subtract startTime from endTime to get time elapsed
local finalTime ( $endTime - $startTime );
# convert hours to seconds, add to sum
:local sum ( $sum + ( [ :pick $finalTime 0 2 ] * 60 * 60 ));
# convert minutes to seconds, add to sum
:set sum ( $sum + ( [ :pick $finalTime 3 5 ] * 60 ));
# add seconds to sum
:set sum ( $sum + [ :pick $finalTime 6 8 ] );
:local sise [[/file get [/file find name=IMG_0024.JPG] size] /1024]
:local sdonspped ((($sise / $sum ) * 8 ) /1024)
:local ddow ((($sdonspped *1000) /8) / 1024)
:global speedtest $sdonspped
:log warning ("My connection Speed ".[:pick $sdonspped 0 1] .".". [:pick $sdonspped 1 3] . " Mbps" )
:log error ("My Speed Download = ". $ddow ." Kbps")
}
{
:global myurl
:local result $myurl
:local resultLen [:len $result]
:local startLoc [:find $result "/ " +19]
:set startLoc ($startLoc +7)
:local endLoc [:find $result "/" +21]
:local hww [:pick $result $startLoc $endLoc ]
:local avgRtt;
:local pin
:local pout
:local pinip [resolve $hww]
/tool flood-ping $pinip count=10 do={
:if ($sent = 10) do={
:set avgRtt $"avg-rtt"
:set pout $sent
:set pin $received
}
}
:local ploss (100 - (($pin * 100) / $pout))
:log warning ("Ping ". $hww. " ==> " . [:tostr $avgRtt] . " ms " . " ( packets sent = " . $pout . " packets received = " . $pin . " packets lose = " . $ploss." )" )
}
:global speedtest
:local y [:len [/queue simple find comment="newmind"]]
:local r [:len [/ip hotspot host find]]
:if ($r != $y ) do={\
:foreach dd in=[/ip firewall address-list find comment="My _ISP_Speed_Now"] do={
:local ndoad $speedtest
/queue simple remove [find comment="newmind"] ;
:local down value=$ndoad;
:local downlo value=(($down / r)*1000);
:local aspeed value=(0."/"."$downlo")
:local hold value=((($down / r) / 2)*1000);
:local ashold value=(0."/"."$hold")
:local max value=((($down / r) / 4)*1000);
:local amax value=(0."/"."$max")
/ip hotspot host
:foreach si in=[ find] do={
:local ip [get $si address]
/queue simple ;\
add burst-limit=$aspeed burst-threshold=$ashold burst-time=0s/20s comment=newmind direction=both disabled=no \
interface=all limit-at=$amax max-limit=$amax name=$ip packet-marks="" parent=none priority=4 \
queue=default-small/default-small target-addresses=$ip total-queue=default-small;\
}}}