Yes.  Link is at the bottom of his email.

Josh Luthman
Office: 937-552-2340
Direct: 937-552-2343
1100 Wayne St
Suite 1337
Troy, OH 45373


On Thu, Sep 20, 2012 at 12:25 PM, Ty Featherling <[email protected]>wrote:

> Thanks but I don't see attachments. Does Butch scrub attachments on this
> list? Probably.
>
> -Ty
>
> On Thu, Sep 20, 2012 at 11:16 AM, Kerry <[email protected]> wrote:
>
> > Attached are the relevant scripts, I just open the text file in crimson
> > editor, copy all the text and paste it into a terminal window.
> > While you're still in the window, change to
> > /system script
> > and
> > run IPPoolInfo
> > or whatever you have the name set to if you changed the name of the
> > script. It will output in the terminal window.
> > Depending on how many pools you have, the output should resemble below:
> >
> > [admin@Attica] /system script> run IPPoolInfo
> > IP Pool Statistics
> > ------------------
> >      Attica  [0/245]  0 % used
> >      Imlay  [0/245]  0 % used
> >      Imlay-Public  [116/125]  92 % used
> >      Attica-Public  [99/122]  81 % used
> > [admin@Attica]/system script>
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > On 9/20/2012 9:03 AM, Ty Featherling wrote:
> >
> >> Please do. It doesn't seem the script is doing anything at all right
> now,
> >> even when I change the thresholds to low numbers.
> >>
> >> -Ty
> >>
> >> On Wed, Sep 19, 2012 at 6:56 PM, Leroy Koglin <[email protected]
> >*
> >> *wrote:
> >>
> >>  Correct. Kerry has our routers setup to run the script every 4 hours.
> If
> >>> the
> >>> pool usage us above the warning value defined in the script an error is
> >>> logged. Remote syslog is enabled and he has rules built into the syslog
> >>> server to alert us when the dhcp pool error is detected.
> >>> As a minimum, if you pool usage is above the value you have set it the
> >>> script on the line :local criticalthreshold 90 you should get an error
> in
> >>> the log. The script is set to kick an error if the pool is 90%
> utilized.
> >>> Change the 90 to a lower value to test with.
> >>>
> >>> The copy/paste may have messed the script up if that is not working for
> >>> you.
> >>> Let me know and I'll send you the script as an attachment.
> >>>
> >>> Leroy
> >>>
> >>>
> >>>
> >>>
> >>> -----Original Message-----
> >>> From: mikrotik-bounces@mail.**butchevans.com<
> [email protected]>
> >>> [mailto:mikrotik-bounces@mail.**butchevans.com<
> [email protected]>]
> >>> On Behalf Of Ty Featherling
> >>> Sent: Wednesday, September 19, 2012 5:53 PM
> >>> To: Mikrotik discussions
> >>> Subject: Re: [Mikrotik] Managing DHCP Pools
> >>>
> >>> Yeah that didn't do it. It just spits out a warning in the log, right?
> >>>
> >>> -Ty
> >>>
> >>> On Wed, Sep 19, 2012 at 4:39 PM, Josh Luthman
> >>> <[email protected]>**wrote:
> >>>
> >>>  Pretty sure you'd need 70% or 90% capacity filled for it to spit out
> an
> >>>> error.  Make the warning value something like 1 or 5 and run it to
> test.
> >>>>
> >>>> Josh Luthman
> >>>> Office: 937-552-2340
> >>>> Direct: 937-552-2343
> >>>> 1100 Wayne St
> >>>> Suite 1337
> >>>> Troy, OH 45373
> >>>>
> >>>>
> >>>> On Wed, Sep 19, 2012 at 5:16 PM, Ty Featherling <
> >>>> [email protected]
> >>>>
> >>>>> wrote:
> >>>>> Ok new script added. Dumped the code in the source field. Left all
> >>>>> permissions checked and gave it a name. It added it in the list but
> >>>>>
> >>>> licking
> >>>>
> >>>>> "Run Script" does nothing. Nothing in the log nor any indication is
> >>>>>
> >>>> started
> >>>>
> >>>>> anything.
> >>>>>
> >>>>> -Ty
> >>>>>
> >>>>> On Wed, Sep 19, 2012 at 4:04 PM, Josh Luthman
> >>>>> <[email protected]>**wrote:
> >>>>>
> >>>>>  I thought there was code above the actual script, sorry!
> >>>>>>
> >>>>>> You should use the GUI to make a new script. There are no proper
> >>>>>>
> >>>>> breaks
> >>>
> >>>> in
> >>>>>
> >>>>>> the email to make it easy in the terminal.
> >>>>>>
> >>>>>> Josh Luthman
> >>>>>> Office: 937-552-2340
> >>>>>> Direct: 937-552-2343
> >>>>>> 1100 Wayne St
> >>>>>> Suite 1337
> >>>>>> Troy, OH 45373
> >>>>>>
> >>>>>>
> >>>>>> On Wed, Sep 19, 2012 at 5:00 PM, Ty Featherling <
> >>>>>>
> >>>>> [email protected]
> >>>>
> >>>>> wrote:
> >>>>>>> Pasted it in.. looks like it cleared with no errors. Now what? I
> >>>>>>>
> >>>>>> don't
> >>>>
> >>>>> see
> >>>>>>
> >>>>>>> a new script or any indication of anything new in ip>pool or
> >>>>>>> ip>dhcp-server.
> >>>>>>>
> >>>>>>> -Ty
> >>>>>>>
> >>>>>>> On Wed, Sep 19, 2012 at 3:37 PM, Josh Luthman
> >>>>>>> <[email protected]>**wrote:
> >>>>>>>
> >>>>>>>  Yep.  Put it in a terminal.  Sometimes browsers turn " into some
> >>>>>>>>
> >>>>>>> weird
> >>>>>
> >>>>>> character...
> >>>>>>>> On Sep 19, 2012 3:56 PM, "Ty Featherling" <
> >>>>>>>>
> >>>>>>> [email protected]
> >>>
> >>>>  wrote:
> >>>>>>>
> >>>>>>>> Ok, hold my hand here.. Just copy that text and paste it into a
> >>>>>>>>>
> >>>>>>>> terminal
> >>>>>>>
> >>>>>>>> windows, yes? Or do I create a script and paste it there? Be
> >>>>>>>>>
> >>>>>>>> gentle,
> >>>>>
> >>>>>> it's
> >>>>>>>
> >>>>>>>> my first time.
> >>>>>>>>>
> >>>>>>>>> -Ty
> >>>>>>>>>
> >>>>>>>>> On Wed, Sep 19, 2012 at 1:45 PM, Kerry <[email protected]>
> >>>>>>>>>
> >>>>>>>> wrote:
> >>>>>
> >>>>>>  I use this script, schedule it to run however often you'd
> >>>>>>>>>>
> >>>>>>>>> like.
> >>>
> >>>> It
> >>>>>
> >>>>>> throws
> >>>>>>>>
> >>>>>>>>> a script error when it's above the thresholds in the script.
> >>>>>>>>>> I have system logging set to log script errors to my syslog
> >>>>>>>>>>
> >>>>>>>>> box
> >>>
> >>>> which
> >>>>>>
> >>>>>>>  email-alerts us.
> >>>>>>>>>> /system logging
> >>>>>>>>>> add action=remote disabled=no prefix=DCHP-Server
> >>>>>>>>>>
> >>>>>>>>> topics=script,error
> >>>>>>
> >>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> # List stats for IP -> Pool
> >>>>>>>>>> #
> >>>>>>>>>> # criticalthreshold = output pool display in red if pool used
> >>>>>>>>>>
> >>>>>>>>> is
> >>>>
> >>>>> above
> >>>>>>>
> >>>>>>>> this %
> >>>>>>>>>> # warnthreshold = output pool display in gold if pool used is
> >>>>>>>>>>
> >>>>>>>>> above
> >>>>>
> >>>>>> this
> >>>>>>>>
> >>>>>>>>> %
> >>>>>>>>>
> >>>>>>>>>> :local criticalthreshold 90
> >>>>>>>>>> :local warnthreshold 70
> >>>>>>>>>>
> >>>>>>>>>> # Internal processing below...
> >>>>>>>>>> # ------------------------------****----
> >>>>>>>>>> /ip pool {
> >>>>>>>>>>     :local poolname
> >>>>>>>>>>     :local pooladdresses
> >>>>>>>>>>     :local poolused
> >>>>>>>>>>     :local poolpercent
> >>>>>>>>>>     :local minaddress
> >>>>>>>>>>     :local maxaddress
> >>>>>>>>>>     :local findindex
> >>>>>>>>>>     :local tmpint
> >>>>>>>>>>     :local maxindex
> >>>>>>>>>>     :local line
> >>>>>>>>>>
> >>>>>>>>>>     :put ("IP Pool Statistics")
> >>>>>>>>>>     :put ("------------------")
> >>>>>>>>>>
> >>>>>>>>>> # Iterate through IP Pools
> >>>>>>>>>>     :foreach p in=[find] do={
> >>>>>>>>>>
> >>>>>>>>>>        :set poolname [get $p name]
> >>>>>>>>>>        :set pooladdresses 0
> >>>>>>>>>>        :set poolused 0
> >>>>>>>>>>        :set line ""
> >>>>>>>>>>
> >>>>>>>>>>        :set line ("     " . $poolname)
> >>>>>>>>>>
> >>>>>>>>>> #   Iterate through current pool's IP ranges
> >>>>>>>>>>        :foreach r in=[:toarray [get $p range]] do={
> >>>>>>>>>>
> >>>>>>>>>> #      Get min and max addresses
> >>>>>>>>>>           :set findindex [:find [:tostr $r] "-"]
> >>>>>>>>>>           :if ([:len $findindex] > 0) do={
> >>>>>>>>>>              :set minaddress [:pick [:tostr $r] 0 $findindex]
> >>>>>>>>>>              :set maxaddress [:pick [:tostr $r] ($findindex +
> >>>>>>>>>>
> >>>>>>>>> 1)
> >>>
> >>>> [:len
> >>>>>>
> >>>>>>>  [:tostr $r]]]
> >>>>>>>>>>           } else={
> >>>>>>>>>>              :set minaddress [:tostr $r]
> >>>>>>>>>>              :set maxaddress [:tostr $r]
> >>>>>>>>>>           }
> >>>>>>>>>>
> >>>>>>>>>> #       Convert to array of octets (replace '.' with ',')
> >>>>>>>>>>           :for x from=0 to=([:len [:tostr $minaddress]] - 1)
> >>>>>>>>>>
> >>>>>>>>> do={
> >>>>
> >>>>>               :if ([:pick [:tostr $minaddress] $x ($x + 1)] =
> >>>>>>>>>>
> >>>>>>>>> ".")
> >>>>
> >>>>> do={
> >>>>>>
> >>>>>>>                  :set minaddress ([:pick [:tostr $minaddress] 0
> >>>>>>>>>>
> >>>>>>>>> $x] .
> >>>>>
> >>>>>> ","
> >>>>>>>
> >>>>>>>> . \
> >>>>>>>>>
> >>>>>>>>>>                                         [:pick [:tostr
> >>>>>>>>>>
> >>>>>>>>> $minaddress]
> >>>>>
> >>>>>> ($x
> >>>>>>>
> >>>>>>>> +
> >>>>>>>>
> >>>>>>>>> 1) [:len [:tostr $minaddress]]]) }
> >>>>>>>>>>           }
> >>>>>>>>>>           :for x from=0 to=([:len [:tostr $maxaddress]] - 1)
> >>>>>>>>>>
> >>>>>>>>> do={
> >>>>
> >>>>>               :if ([:pick [:tostr $maxaddress] $x ($x + 1)] =
> >>>>>>>>>>
> >>>>>>>>> ".")
> >>>>
> >>>>> do={
> >>>>>>
> >>>>>>>                  :set maxaddress ([:pick [:tostr $maxaddress] 0
> >>>>>>>>>>
> >>>>>>>>> $x] .
> >>>>>
> >>>>>> ","
> >>>>>>>
> >>>>>>>> . \
> >>>>>>>>>
> >>>>>>>>>>                                         [:pick [:tostr
> >>>>>>>>>>
> >>>>>>>>> $maxaddress]
> >>>>>
> >>>>>> ($x
> >>>>>>>
> >>>>>>>> +
> >>>>>>>>
> >>>>>>>>> 1) [:len [:tostr $maxaddress]]]) }
> >>>>>>>>>>           }
> >>>>>>>>>>
> >>>>>>>>>> #      Calculate available addresses for current range
> >>>>>>>>>>           :if ([:len [:toarray $minaddress]] = [:len [:toarray
> >>>>>>>>>> $maxaddress]]) do={
> >>>>>>>>>>              :set maxindex ([:len [:toarray $minaddress]] - 1)
> >>>>>>>>>>              :for x from=$maxindex to=0 step=-1 do={
> >>>>>>>>>> #             Calculate 256^($maxindex - $x)
> >>>>>>>>>>                 :set tmpint 1
> >>>>>>>>>>                 :if (($maxindex - $x) > 0) do={
> >>>>>>>>>>                    :for y from=1 to=($maxindex - $x) do={ :set
> >>>>>>>>>>
> >>>>>>>>> tmpint
> >>>>>>
> >>>>>>> (256
> >>>>>>>>
> >>>>>>>>> * $tmpint) }
> >>>>>>>>>>                 }
> >>>>>>>>>>                 :set tmpint ($tmpint * ([:tonum [:pick
> >>>>>>>>>>
> >>>>>>>>> [:toarray
> >>>
> >>>>  $maxaddress] $x]] - \
> >>>>>>>>>>                                                      [:tonum
> >>>>>>>>>>
> >>>>>>>>> [:pick
> >>>>>
> >>>>>>  [:toarray $minaddress] $x]]) )
> >>>>>>>>>>                 :set pooladdresses ($pooladdresses + $tmpint)
> >>>>>>>>>> #         for x
> >>>>>>>>>>              }
> >>>>>>>>>>
> >>>>>>>>>> #      if len array $minaddress = $maxaddress
> >>>>>>>>>>           }
> >>>>>>>>>>
> >>>>>>>>>> #      Add current range to total pool's available addresses
> >>>>>>>>>>           :set pooladdresses ($pooladdresses + 1)
> >>>>>>>>>>
> >>>>>>>>>> #   foreach r
> >>>>>>>>>>        }
> >>>>>>>>>>
> >>>>>>>>>> #   Now, we have the available address for all ranges in this
> >>>>>>>>>>
> >>>>>>>>> pool
> >>>>>
> >>>>>>  #   Get the number of used addresses for this pool
> >>>>>>>>>>        :set poolused [:len [used find pool=[:tostr
> >>>>>>>>>>
> >>>>>>>>> $poolname]]]
> >>>
> >>>>         :set poolpercent (($poolused * 100) / $pooladdresses)
> >>>>>>>>>>
> >>>>>>>>>> #   Output information
> >>>>>>>>>>        :set line ([:tostr $line] . "  [" . $poolused . "/" .
> >>>>>>>>>>
> >>>>>>>>> $pooladdresses
> >>>>>>>>>
> >>>>>>>>>> . "]")
> >>>>>>>>>>        :set line ([:tostr $line] . "  " . $poolpercent . " %
> >>>>>>>>>>
> >>>>>>>>> used")
> >>>>>
> >>>>>>  #   Set colored display for used thresholds
> >>>>>>>>>>        :if ( [:tonum $poolpercent] > $criticalthreshold ) do={
> >>>>>>>>>>           :log error ("IP Pool " . $poolname . " is " .
> >>>>>>>>>>
> >>>>>>>>> $poolpercent .
> >>>>>>
> >>>>>>> "%
> >>>>>>>>
> >>>>>>>>> full" . " [" . $poolused . "/" . $pooladdresses . "]")
> >>>>>>>>>>           :put ([:terminal style varname] . $line)
> >>>>>>>>>>        } else={
> >>>>>>>>>>           :if ( [:tonum $poolpercent] > $warnthreshold ) do={
> >>>>>>>>>>              :log warning ("IP Pool " . $poolname . " is " .
> >>>>>>>>>>
> >>>>>>>>> $poolpercent
> >>>>>>>>
> >>>>>>>>> .
> >>>>>>>>>
> >>>>>>>>>> "% full")
> >>>>>>>>>>              :put ([:terminal style syntax-meta] . $line)
> >>>>>>>>>>           } else={
> >>>>>>>>>>              :put ([:terminal style none] . $line)
> >>>>>>>>>>           }
> >>>>>>>>>>        }
> >>>>>>>>>>
> >>>>>>>>>> # foreach p
> >>>>>>>>>>     }
> >>>>>>>>>> # /ip pool
> >>>>>>>>>>
> >>>>>>>>>> }
> >>>>>>>>>> On 9/19/2012 11:33 AM, Ty Featherling wrote:
> >>>>>>>>>>
> >>>>>>>>>>  I have a routerboard acting as my primary DHCP server. I am
> >>>>>>>>>>>
> >>>>>>>>>> also
> >>>>
> >>>>>  adding
> >>>>>>>>
> >>>>>>>>> routers to this large bridged network a tower at a time and
> >>>>>>>>>>>
> >>>>>>>>>> each
> >>>>
> >>>>> new
> >>>>>>
> >>>>>>>  router
> >>>>>>>>>>> holds DHCP pools for their segment as well.
> >>>>>>>>>>>
> >>>>>>>>>>> How can I keep track of how many addresses are being
> >>>>>>>>>>>
> >>>>>>>>>> utilized
> >>>
> >>>> per
> >>>>>
> >>>>>> pool?
> >>>>>>>>
> >>>>>>>>> I
> >>>>>>>>>
> >>>>>>>>>> know that "ip dhcp-server lease print" will show how many
> >>>>>>>>>>>
> >>>>>>>>>> active
> >>>>
> >>>>>  leases
> >>>>>>>>
> >>>>>>>>> there are but I want to see the number of unused addresses
> >>>>>>>>>>>
> >>>>>>>>>> in
> >>>
> >>>> a
> >>>>
> >>>>> pool.
> >>>>>>>
> >>>>>>>> I
> >>>>>>>>
> >>>>>>>>> have to do math in my head each time to compare the number
> >>>>>>>>>>>
> >>>>>>>>>> of
> >>>
> >>>>  addresses
> >>>>>>>>
> >>>>>>>>> in
> >>>>>>>>>
> >>>>>>>>>> the pool to the number of active leases to get that number.
> >>>>>>>>>>>
> >>>>>>>>>>> Has anyone found or created a more elegant solution to this?
> >>>>>>>>>>>
> >>>>>>>>>>> -Ty
> >>>>>>>>>>> -------------- next part --------------
> >>>>>>>>>>> An HTML attachment was scrubbed...
> >>>>>>>>>>> URL: <http://www.butchevans.com/****pipermail/mikrotik/**<
> http://www.butchevans.com/**pipermail/mikrotik/**>
> >>>>>>>>>>> attachments/20120919/54ec5d39/****attachment.html<
> >>>>>>>>>>>
> >>>>>>>>>> http://www.butchevans.com/**pipermail/mikrotik/**
> >>> attachments/20120919/54ec5d39/**a<
> http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/54ec5d39/a
> >
> >>> ttachment.html
> >>>
> >>>>  ______________________________****_________________
> >>>>>>>>>>> Mikrotik mailing list
> >>>>>>>>>>> [email protected]
> >>>>>>>>>>> http://www.butchevans.com/****mailman/listinfo/mikrotik<
> http://www.butchevans.com/**mailman/listinfo/mikrotik>
> >>>>>>>>>>> <
> >>>>>>>>>>>
> >>>>>>>>>> http://www.butchevans.com/**mailman/listinfo/mikrotik<
> http://www.butchevans.com/mailman/listinfo/mikrotik>
> >>>>>>>>> >
> >>>>>>>>>
> >>>>>>>>>> Visit http://blog.butchevans.com/ for tutorials related to
> >>>>>>>>>>>
> >>>>>>>>>> Mikrotik
> >>>>>>
> >>>>>>>  RouterOS
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>  ______________________________****_________________
> >>>>>>>>>> Mikrotik mailing list
> >>>>>>>>>> [email protected]
> >>>>>>>>>> http://www.butchevans.com/****mailman/listinfo/mikrotik<
> http://www.butchevans.com/**mailman/listinfo/mikrotik>
> >>>>>>>>>> <
> >>>>>>>>>>
> >>>>>>>>> http://www.butchevans.com/**mailman/listinfo/mikrotik<
> http://www.butchevans.com/mailman/listinfo/mikrotik>
> >>>>>>>>> >
> >>>>>>>>>
> >>>>>>>>>> Visit http://blog.butchevans.com/ for tutorials related to
> >>>>>>>>>>
> >>>>>>>>> Mikrotik
> >>>>>>
> >>>>>>>  RouterOS
> >>>>>>>>>>
> >>>>>>>>>>  -------------- next part --------------
> >>>>>>>>> An HTML attachment was scrubbed...
> >>>>>>>>> URL: <
> >>>>>>>>>
> >>>>>>>>>  http://www.butchevans.com/**pipermail/mikrotik/**
> >>> attachments/20120919/abf0ef50/**a<
> http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/abf0ef50/a
> >
> >>> ttachment.html
> >>>
> >>>>  ______________________________**_________________
> >>>>>>>>> Mikrotik mailing list
> >>>>>>>>> [email protected]
> >>>>>>>>> http://www.butchevans.com/**mailman/listinfo/mikrotik<
> http://www.butchevans.com/mailman/listinfo/mikrotik>
> >>>>>>>>>
> >>>>>>>>> Visit http://blog.butchevans.com/ for tutorials related to
> >>>>>>>>>
> >>>>>>>> Mikrotik
> >>>>>
> >>>>>>  RouterOS
> >>>>>>>>>
> >>>>>>>>>  -------------- next part --------------
> >>>>>>>> An HTML attachment was scrubbed...
> >>>>>>>> URL: <
> >>>>>>>>
> >>>>>>>>  http://www.butchevans.com/**pipermail/mikrotik/**
> >>> attachments/20120919/45f5f7e4/**a<
> http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/45f5f7e4/a
> >
> >>> ttachment.html
> >>>
> >>>>  ______________________________**_________________
> >>>>>>>> Mikrotik mailing list
> >>>>>>>> [email protected]
> >>>>>>>> http://www.butchevans.com/**mailman/listinfo/mikrotik<
> http://www.butchevans.com/mailman/listinfo/mikrotik>
> >>>>>>>>
> >>>>>>>> Visit http://blog.butchevans.com/ for tutorials related to
> >>>>>>>>
> >>>>>>> Mikrotik
> >>>>
> >>>>>  RouterOS
> >>>>>>>>
> >>>>>>>>  -------------- next part --------------
> >>>>>>> An HTML attachment was scrubbed...
> >>>>>>> URL: <
> >>>>>>>
> >>>>>>>  http://www.butchevans.com/**pipermail/mikrotik/**
> >>> attachments/20120919/d4411d56/**a<
> http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/d4411d56/a
> >
> >>> ttachment.html
> >>>
> >>>>  ______________________________**_________________
> >>>>>>> Mikrotik mailing list
> >>>>>>> [email protected]
> >>>>>>> http://www.butchevans.com/**mailman/listinfo/mikrotik<
> http://www.butchevans.com/mailman/listinfo/mikrotik>
> >>>>>>>
> >>>>>>> Visit http://blog.butchevans.com/ for tutorials related to
> >>>>>>>
> >>>>>> Mikrotik
> >>>
> >>>>  RouterOS
> >>>>>>>
> >>>>>>>  -------------- next part --------------
> >>>>>> An HTML attachment was scrubbed...
> >>>>>> URL: <
> >>>>>>
> >>>>>>  http://www.butchevans.com/**pipermail/mikrotik/**
> >>> attachments/20120919/efe00c84/**a<
> http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/efe00c84/a
> >
> >>> ttachment.html
> >>>
> >>>> ______________________________**_________________
> >>>>>> Mikrotik mailing list
> >>>>>> [email protected]
> >>>>>> http://www.butchevans.com/**mailman/listinfo/mikrotik<
> http://www.butchevans.com/mailman/listinfo/mikrotik>
> >>>>>>
> >>>>>> Visit http://blog.butchevans.com/ for tutorials related to Mikrotik
> >>>>>> RouterOS
> >>>>>>
> >>>>>>  -------------- next part --------------
> >>>>> An HTML attachment was scrubbed...
> >>>>> URL: <
> >>>>>
> >>>>>  http://www.butchevans.com/**pipermail/mikrotik/**
> >>> attachments/20120919/80dc40f5/**a<
> http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/80dc40f5/a
> >
> >>> ttachment.html
> >>>
> >>>> ______________________________**_________________
> >>>>> Mikrotik mailing list
> >>>>> [email protected]
> >>>>> http://www.butchevans.com/**mailman/listinfo/mikrotik<
> http://www.butchevans.com/mailman/listinfo/mikrotik>
> >>>>>
> >>>>> Visit http://blog.butchevans.com/ for tutorials related to Mikrotik
> >>>>> RouterOS
> >>>>>
> >>>>>  -------------- next part --------------
> >>>> An HTML attachment was scrubbed...
> >>>> URL: <
> >>>>
> >>>>  http://www.butchevans.com/**pipermail/mikrotik/**
> >>> attachments/20120919/3f7ad5cd/**a<
> http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/3f7ad5cd/a
> >
> >>> ttachment.html
> >>>
> >>>> ______________________________**_________________
> >>>> Mikrotik mailing list
> >>>> [email protected]
> >>>> http://www.butchevans.com/**mailman/listinfo/mikrotik<
> http://www.butchevans.com/mailman/listinfo/mikrotik>
> >>>>
> >>>> Visit http://blog.butchevans.com/ for tutorials related to Mikrotik
> >>>> RouterOS
> >>>>
> >>>>  -------------- next part --------------
> >>> An HTML attachment was scrubbed...
> >>> URL:
> >>> <
> >>> http://www.butchevans.com/**pipermail/mikrotik/**
> >>> attachments/20120919/08b665f3/<
> http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/08b665f3/
> >
> >>> attachment.html>
> >>> ______________________________**_________________
> >>> Mikrotik mailing list
> >>> [email protected]
> >>> http://www.butchevans.com/**mailman/listinfo/mikrotik<
> http://www.butchevans.com/mailman/listinfo/mikrotik>
> >>>
> >>> Visit http://blog.butchevans.com/ for tutorials related to Mikrotik
> >>> RouterOS
> >>>
> >>> ______________________________**_________________
> >>> Mikrotik mailing list
> >>> [email protected]
> >>> http://www.butchevans.com/**mailman/listinfo/mikrotik<
> http://www.butchevans.com/mailman/listinfo/mikrotik>
> >>>
> >>> Visit http://blog.butchevans.com/ for tutorials related to Mikrotik
> >>> RouterOS
> >>>
> >>>  -------------- next part --------------
> >> An HTML attachment was scrubbed...
> >> URL: <http://www.butchevans.com/**pipermail/mikrotik/**
> >> attachments/20120920/f520cb00/**attachment.html<
> http://www.butchevans.com/pipermail/mikrotik/attachments/20120920/f520cb00/attachment.html
> >
> >> >
> >>
> >> ______________________________**_________________
> >> Mikrotik mailing list
> >> [email protected]
> >> http://www.butchevans.com/**mailman/listinfo/mikrotik<
> http://www.butchevans.com/mailman/listinfo/mikrotik>
> >>
> >> Visit http://blog.butchevans.com/ for tutorials related to Mikrotik
> >> RouterOS
> >>
> >>
> >>
> > -------------- next part --------------
> > /system logging
> > add action=remote disabled=no prefix=ChangeMe topics=script,error
> > /system logging action
> > set remote bsd-syslog=no name=remote remote=xxx.xxx.xxx.xxx
> > remote-port=514 \
> >    src-address=0.0.0.0 syslog-facility=daemon syslog-severity=auto
> target=\
> >    remote
> > /system script
> > add name=IPPoolInfo policy=\
> >
>  ftp,reboot,read,write,policy,**test,winbox,password,sniff,**sensitive,api
> > \
> >    source="# List stats for IP -> Pool\r\
> >    \n#\r\
> >    \n# criticalthreshold = output pool display in red if pool used is
> > above t\
> >    his %\r\
> >    \n# warnthreshold = output pool display in gold if pool used is above
> > this\
> >    \_%\r\
> >    \n\r\
> >    \n:local criticalthreshold 90\r\
> >    \n:local warnthreshold 70\r\
> >    \n\r\
> >    \n# Internal processing below...\r\
> >    \n# ------------------------------**----\r\
> >    \n/ip pool {\r\
> >    \n   :local poolname\r\
> >    \n   :local pooladdresses\r\
> >    \n   :local poolused\r\
> >    \n   :local poolpercent\r\
> >    \n   :local minaddress\r\
> >    \n   :local maxaddress\r\
> >    \n   :local findindex\r\
> >    \n   :local tmpint\r\
> >    \n   :local maxindex\r\
> >    \n   :local line\r\
> >    \n\r\
> >    \n   :put (\"IP Pool Statistics\")\r\
> >    \n   :put (\"------------------\")\r\
> >    \n\r\
> >    \n# Iterate through IP Pools\r\
> >    \n   :foreach p in=[find] do={\r\
> >    \n\r\
> >    \n      :set poolname [get \$p name]\r\
> >    \n      :set pooladdresses 0\r\
> >    \n      :set poolused 0\r\
> >    \n      :set line \"\"\r\
> >    \n\r\
> >    \n      :set line (\"     \" . \$poolname)\r\
> >    \n\r\
> >    \n#   Iterate through current pool's IP ranges\r\
> >    \n      :foreach r in=[:toarray [get \$p range]] do={\r\
> >    \n\r\
> >    \n#      Get min and max addresses\r\
> >    \n         :set findindex [:find [:tostr \$r] \"-\"]\r\
> >    \n         :if ([:len \$findindex] > 0) do={\r\
> >    \n            :set minaddress [:pick [:tostr \$r] 0 \$findindex]\r\
> >    \n            :set maxaddress [:pick [:tostr \$r] (\$findindex + 1)
> > [:len \
> >    [:tostr \$r]]]\r\
> >    \n         } else={\r\
> >    \n            :set minaddress [:tostr \$r]\r\
> >    \n            :set maxaddress [:tostr \$r]\r\
> >    \n         }\r\
> >    \n\r\
> >    \n#       Convert to array of octets (replace '.' with ',')\r\
> >    \n         :for x from=0 to=([:len [:tostr \$minaddress]] - 1) do={\r\
> >    \n            :if ([:pick [:tostr \$minaddress] \$x (\$x + 1)] =
> \".\")
> > do\
> >    ={\r\
> >    \n               :set minaddress ([:pick [:tostr \$minaddress] 0 \$x]
> .
> > \"\
> >    ,\" . \\\r\
> >    \n                                       [:pick [:tostr \$minaddress]
> > (\$x\
> >    \_+ 1) [:len [:tostr \$minaddress]]]) }\r\
> >    \n         }\r\
> >    \n         :for x from=0 to=([:len [:tostr \$maxaddress]] - 1) do={\r\
> >    \n            :if ([:pick [:tostr \$maxaddress] \$x (\$x + 1)] =
> \".\")
> > do\
> >    ={\r\
> >    \n               :set maxaddress ([:pick [:tostr \$maxaddress] 0 \$x]
> .
> > \"\
> >    ,\" . \\\r\
> >    \n                                       [:pick [:tostr \$maxaddress]
> > (\$x\
> >    \_+ 1) [:len [:tostr \$maxaddress]]]) }\r\
> >    \n         }\r\
> >    \n\r\
> >    \n#      Calculate available addresses for current range\r\
> >    \n         :if ([:len [:toarray \$minaddress]] = [:len [:toarray
> > \$maxaddr\
> >    ess]]) do={\r\
> >    \n            :set maxindex ([:len [:toarray \$minaddress]] - 1)\r\
> >    \n            :for x from=\$maxindex to=0 step=-1 do={\r\
> >    \n#             Calculate 256^(\$maxindex - \$x)\r\
> >    \n               :set tmpint 1\r\
> >    \n               :if ((\$maxindex - \$x) > 0) do={\r\
> >    \n                  :for y from=1 to=(\$maxindex - \$x) do={ :set
> > tmpint (\
> >    256 * \$tmpint) }\r\
> >    \n               }\r\
> >    \n               :set tmpint (\$tmpint * ([:tonum [:pick [:toarray
> > \$maxad\
> >    dress] \$x]] - \\\r\
> >    \n                                                    [:tonum [:pick
> > [:toa\
> >    rray \$minaddress] \$x]]) )\r\
> >    \n               :set pooladdresses (\$pooladdresses + \$tmpint)\r\
> >    \n#         for x\r\
> >    \n            }\r\
> >    \n\r\
> >    \n#      if len array \$minaddress = \$maxaddress\r\
> >    \n         }\r\
> >    \n\r\
> >    \n#      Add current range to total pool's available addresses\r\
> >    \n         :set pooladdresses (\$pooladdresses + 1)\r\
> >    \n\r\
> >    \n#   foreach r\r\
> >    \n      }\r\
> >    \n\r\
> >    \n#   Now, we have the available address for all ranges in this
> pool\r\
> >    \n#   Get the number of used addresses for this pool\r\
> >    \n      :set poolused [:len [used find pool=[:tostr \$poolname]]]\r\
> >    \n      :set poolpercent ((\$poolused * 100) / \$pooladdresses)\r\
> >    \n\r\
> >    \n#   Output information\r\
> >    \n      :set line ([:tostr \$line] . \"  [\" . \$poolused . \"/\" .
> > \$pool\
> >    addresses . \"]\")\r\
> >    \n      :set line ([:tostr \$line] . \"  \" . \$poolpercent . \" %
> > used\")\
> >    \r\
> >    \n\r\
> >    \n#   Set colored display for used thresholds\r\
> >    \n      :if ( [:tonum \$poolpercent] > \$criticalthreshold ) do={\r\
> >    \n         :log error (\"IP Pool \" . \$poolname . \" is \" .
> > \$poolpercen\
> >    t . \"% full\" . \" [\" . \$poolused . \"/\" . \$pooladdresses .
> > \"]\")\r\
> >    \n         :put ([:terminal style varname] . \$line)\r\
> >    \n      } else={\r\
> >    \n         :if ( [:tonum \$poolpercent] > \$warnthreshold ) do={\r\
> >    \n            :log warning (\"IP Pool \" . \$poolname . \" is \" .
> > \$poolp\
> >    ercent . \"% full\")\r\
> >    \n            :put ([:terminal style syntax-meta] . \$line)\r\
> >    \n         } else={\r\
> >    \n            :put ([:terminal style none] . \$line)\r\
> >    \n         }\r\
> >    \n      }\r\
> >    \n\r\
> >    \n# foreach p\r\
> >    \n   }\r\
> >    \n# /ip pool\r\
> >    \n}\r\
> >    \n"
> >
> > ______________________________**_________________
> > Mikrotik mailing list
> > [email protected]
> > http://www.butchevans.com/**mailman/listinfo/mikrotik<
> http://www.butchevans.com/mailman/listinfo/mikrotik>
> >
> > Visit http://blog.butchevans.com/ for tutorials related to Mikrotik
> > RouterOS
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://www.butchevans.com/pipermail/mikrotik/attachments/20120920/c361077b/attachment.html
> >
> _______________________________________________
> Mikrotik mailing list
> [email protected]
> http://www.butchevans.com/mailman/listinfo/mikrotik
>
> Visit http://blog.butchevans.com/ for tutorials related to Mikrotik
> RouterOS
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://www.butchevans.com/pipermail/mikrotik/attachments/20120920/6290e638/attachment.html>
_______________________________________________
Mikrotik mailing list
[email protected]
http://www.butchevans.com/mailman/listinfo/mikrotik

Visit http://blog.butchevans.com/ for tutorials related to Mikrotik RouterOS

Reply via email to