1=== color text 2Ranges: 3shared net name first ip last ip max cur percent touch t+c t+c perc 4example1 10.0.0.1 - 10.0.0.20 20 11 55.000 0 11 55.000 5example1 10.1.0.1 - 10.1.0.20 20 10 50.000 0 10 50.000 6example2 10.2.0.1 - 10.2.0.20 20 8 40.000 0 8 40.000 7example2 10.3.0.1 - 10.3.0.20 20 9 45.000 0 9 45.000 8All networks 10.4.0.1 - 10.4.0.20 20 5 25.000 0 5 25.000 9 10Shared networks: 11name max cur percent touch t+c t+c perc 12example1 40 21 52.500 0 21 52.500 13example2 40 17 42.500 0 17 42.500 14 15Sum of all ranges: 16name max cur percent touch t+c t+c perc 17All networks 100 43 43.000 0 43 43.000 18=== html 19<!DOCTYPE html> 20<html> 21<head> 22<title>ISC dhcpd dhcpd-pools output</title> 23<meta charset="utf-8"> 24<meta http-equiv="X-UA-Compatible" content="IE=edge"> 25<meta name="viewport" content="width=device-width, initial-scale=1"> 26<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" type="text/css"> 27<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css"> 28<style type="text/css"> 29table.dhcpd-pools th { text-transform: capitalize } 30</style> 31</head> 32<body> 33<div class="container"> 34<h2>ISC DHCPD status</h2> 35<h3>Sum of all</h3> 36<table id="a" class="dhcpd-pools order-column table table-hover" summary="all"> 37<thead> 38<tr> 39<th>name</th> 40<th>max</th> 41<th>cur</th> 42<th>free</th> 43<th>percent</th> 44<th>touch</th> 45<th>t+c</th> 46<th>t+c perc</th> 47</tr> 48</thead> 49<tbody> 50<tr> 51<td>All networks</td> 52<td>100</td> 53<td>43</td> 54<td>57</td> 55<td>43.000</td> 56<td>0</td> 57<td>43</td> 58<td>43.000</td> 59</tr> 60</tbody> 61</table> 62<h3>Shared networks</h3> 63<table id="s" class="dhcpd-pools order-column table table-hover" summary="snet"> 64<thead> 65<tr> 66<th>name</th> 67<th>max</th> 68<th>cur</th> 69<th>free</th> 70<th>percent</th> 71<th>touch</th> 72<th>t+c</th> 73<th>t+c perc</th> 74</tr> 75</thead> 76<tbody> 77<tr> 78<td>example1</td> 79<td>40</td> 80<td>21</td> 81<td>19</td> 82<td>52.5</td> 83<td>0</td> 84<td>21</td> 85<td>52.500</td> 86</tr> 87<tr> 88<td>example2</td> 89<td>40</td> 90<td>17</td> 91<td>23</td> 92<td>42.5</td> 93<td>0</td> 94<td>17</td> 95<td>42.500</td> 96</tr> 97</tbody> 98</table> 99<h3>Ranges</h3> 100<table id="r" class="dhcpd-pools order-column table table-hover" summary="ranges"> 101<thead> 102<tr> 103<th>shared net name</th> 104<th>first ip</th> 105<th>last ip</th> 106<th>max</th> 107<th>cur</th> 108<th>free</th> 109<th>percent</th> 110<th>touch</th> 111<th>t+c</th> 112<th>t+c perc</th> 113</tr> 114</thead> 115<tbody> 116<tr> 117<td>example1</td> 118<td>10.0.0.1</td> 119<td>10.0.0.20</td> 120<td>20</td> 121<td>11</td> 122<td>9</td> 123<td>55</td> 124<td>0</td> 125<td>11</td> 126<td>55.000</td> 127</tr> 128<tr> 129<td>example1</td> 130<td>10.1.0.1</td> 131<td>10.1.0.20</td> 132<td>20</td> 133<td>10</td> 134<td>10</td> 135<td>50</td> 136<td>0</td> 137<td>10</td> 138<td>50.000</td> 139</tr> 140<tr> 141<td>example2</td> 142<td>10.2.0.1</td> 143<td>10.2.0.20</td> 144<td>20</td> 145<td>8</td> 146<td>12</td> 147<td>40</td> 148<td>0</td> 149<td>8</td> 150<td>40.000</td> 151</tr> 152<tr> 153<td>example2</td> 154<td>10.3.0.1</td> 155<td>10.3.0.20</td> 156<td>20</td> 157<td>9</td> 158<td>11</td> 159<td>45</td> 160<td>0</td> 161<td>9</td> 162<td>45.000</td> 163</tr> 164<tr> 165<td>All networks</td> 166<td>10.4.0.1</td> 167<td>10.4.0.20</td> 168<td>20</td> 169<td>5</td> 170<td>15</td> 171<td>25</td> 172<td>0</td> 173<td>5</td> 174<td>25.000</td> 175</tr> 176</tbody> 177</table> 178<br /><div class="well well-lg"> 179More info at <a href="http://dhcpd-pools.sourceforge.net/">http://dhcpd-pools.sourceforge.net/</a> 180</small></div></div> 181<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" type="text/javascript"></script> 182<script type="text/javascript" src="https://cdn.datatables.net/v/bs/jq-3.2.1/dt-1.10.16/datatables.min.js"></script> 183<script type="text/javascript" class="init">$(document).ready(function() { $('#s').DataTable({ "iDisplayLength": 50, "lengthMenu": [ [25, 50, 100, -1], [25, 50, 100, "All"] ], "order": [[ 4, "desc" ]] } ); } );</script> 184<script type="text/javascript" class="init">$(document).ready(function() { $('#r').DataTable({ "iDisplayLength": 100, "lengthMenu": [ [25, 50, 100, -1], [25, 50, 100, "All"] ], "order": [[ 6, "desc" ]] } ); } );</script> 185</body></html> 186=== xml 187<dhcpstatus> 188<subnet> 189 <location>example1</location> 190 <range>10.0.0.1 - 10.0.0.20</range> 191 <defined>20</defined> 192 <used>11</used> 193 <touched>0</touched> 194 <free>9</free> 195</subnet> 196<subnet> 197 <location>example1</location> 198 <range>10.1.0.1 - 10.1.0.20</range> 199 <defined>20</defined> 200 <used>10</used> 201 <touched>0</touched> 202 <free>10</free> 203</subnet> 204<subnet> 205 <location>example2</location> 206 <range>10.2.0.1 - 10.2.0.20</range> 207 <defined>20</defined> 208 <used>8</used> 209 <touched>0</touched> 210 <free>12</free> 211</subnet> 212<subnet> 213 <location>example2</location> 214 <range>10.3.0.1 - 10.3.0.20</range> 215 <defined>20</defined> 216 <used>9</used> 217 <touched>0</touched> 218 <free>11</free> 219</subnet> 220<subnet> 221 <location>All networks</location> 222 <range>10.4.0.1 - 10.4.0.20</range> 223 <defined>20</defined> 224 <used>5</used> 225 <touched>0</touched> 226 <free>15</free> 227</subnet> 228<shared-network> 229 <location>example1</location> 230 <defined>40</defined> 231 <used>21</used> 232 <touched>0</touched> 233 <free>19</free> 234</shared-network> 235<shared-network> 236 <location>example2</location> 237 <defined>40</defined> 238 <used>17</used> 239 <touched>0</touched> 240 <free>23</free> 241</shared-network> 242<summary> 243 <location>All networks</location> 244 <defined>100</defined> 245 <used>43</used> 246 <touched>0</touched> 247 <free>57</free> 248</summary> 249</dhcpstatus> 250=== csv 251"Ranges:" 252"shared net name","first ip","last ip","max","cur","percent","touch","t+c","t+c perc" 253"example1","10.0.0.1","10.0.0.20","20","11","55.000","0","11","55.000" 254"example1","10.1.0.1","10.1.0.20","20","10","50.000","0","10","50.000" 255"example2","10.2.0.1","10.2.0.20","20","8","40.000","0","8","40.000" 256"example2","10.3.0.1","10.3.0.20","20","9","45.000","0","9","45.000" 257"All networks","10.4.0.1","10.4.0.20","20","5","25.000","0","5","25.000" 258 259"Shared networks:" 260"name","max","cur","percent","touch","t+c","t+c perc" 261"example1","40","21","52.500","0","21","52.500" 262"example2","40","17","42.500","0","17","42.500" 263 264"Sum of all ranges:" 265"name","max","cur","percent","touch","t+c","t+c perc" 266"All networks","100","43","43.000","0","43","43.000" 267=== json 268{ 269 "subnets": [ 270 { "location":"example1", "range":"10.0.0.1 - 10.0.0.20", "first_ip":"10.0.0.1", "last_ip":"10.0.0.20", "defined":20, "used":11, "touched":0, "free":9, "percent":55, "touch_count":11, "touch_percent":55, "status":0 }, 271 { "location":"example1", "range":"10.1.0.1 - 10.1.0.20", "first_ip":"10.1.0.1", "last_ip":"10.1.0.20", "defined":20, "used":10, "touched":0, "free":10, "percent":50, "touch_count":10, "touch_percent":50, "status":0 }, 272 { "location":"example2", "range":"10.2.0.1 - 10.2.0.20", "first_ip":"10.2.0.1", "last_ip":"10.2.0.20", "defined":20, "used":8, "touched":0, "free":12, "percent":40, "touch_count":8, "touch_percent":40, "status":0 }, 273 { "location":"example2", "range":"10.3.0.1 - 10.3.0.20", "first_ip":"10.3.0.1", "last_ip":"10.3.0.20", "defined":20, "used":9, "touched":0, "free":11, "percent":45, "touch_count":9, "touch_percent":45, "status":0 }, 274 { "location":"All networks", "range":"10.4.0.1 - 10.4.0.20", "first_ip":"10.4.0.1", "last_ip":"10.4.0.20", "defined":20, "used":5, "touched":0, "free":15, "percent":25, "touch_count":5, "touch_percent":25, "status":0 } 275 ], 276 "shared-networks": [ 277 { "location":"example1", "defined":40, "used":21, "touched":0, "free":19, "percent":52.5, "touch_count":21, "touch_percent":52.5, "status":0 }, 278 { "location":"example2", "defined":40, "used":17, "touched":0, "free":23, "percent":42.5, "touch_count":17, "touch_percent":42.5, "status":0 } 279 ] 280} 281=== perfdata 282CRITICAL: dhcpd-pools: Ranges - crit: 3 warn: 2 ok: 0; | range_crit=3 range_warn=2 range_ok=0 10.4.0.1_r=5;4;8;0;20 10.4.0.1_rt=0 10.3.0.1_r=9;4;8;0;20 10.3.0.1_rt=0 10.2.0.1_r=8;4;8;0;20 10.2.0.1_rt=0 10.1.0.1_r=10;4;8;0;20 10.1.0.1_rt=0 10.0.0.1_r=11;4;8;0;20 10.0.0.1_rt=0 283Shared nets - crit: 2 warn: 0 ok: 0; | snet_crit=2 snet_warn=0 snet_ok=0 'example1_s'=21;8;16;0;40 'example1_st'=0 'example2_s'=17;8;16;0;40 'example2_st'=0 284 285