diff options
author | Scott Ullrich <sullrich@pfsense.org> | 2005-10-18 15:50:37 +0000 |
---|---|---|
committer | Scott Ullrich <sullrich@pfsense.org> | 2005-10-18 15:50:37 +0000 |
commit | 9252431cd0e4d3654a24ffe6fab971c1689db930 (patch) | |
tree | ea43e89b489161e930bbd8baa84b283ab257b467 /usr/local/www | |
parent | 33eaec8811cd5a36e217de79c60beb13f0334c04 (diff) | |
download | pfsense-9252431cd0e4d3654a24ffe6fab971c1689db930.zip pfsense-9252431cd0e4d3654a24ffe6fab971c1689db930.tar.gz |
MFC 6955
Show static entries on diagnostics screen, show what IPs are in either the static table or the dynamic table and are in the ARP table More info!!! More is better right?
Diffstat (limited to 'usr/local/www')
-rwxr-xr-x | usr/local/www/diag_dhcp_leases.php | 71 |
1 files changed, 61 insertions, 10 deletions
diff --git a/usr/local/www/diag_dhcp_leases.php b/usr/local/www/diag_dhcp_leases.php index adb418b..2db2d75 100755 --- a/usr/local/www/diag_dhcp_leases.php +++ b/usr/local/www/diag_dhcp_leases.php @@ -111,6 +111,7 @@ while ($data = array_shift($return)) { if ($data[0] == "lease") { $d = array_shift($return); $leases[$i]['ip'] = $d[0]; + $leases[$i]['type'] = "dynamic"; } if ($data[0] == "client-hostname") { $d = array_shift($return); @@ -121,6 +122,12 @@ while ($data = array_shift($return)) { if ($d[0] == "ethernet") { $d = array_shift($return); $leases[$i]['mac'] = $d[0]; + $online = exec("/usr/sbin/arp -an |/usr/bin/grep {$d[0]}| /usr/bin/wc -l|/usr/bin/awk '{print $1;}'"); + if ($online == 1) { + $leases[$i]['online'] = 'online'; + } else { + $leases[$i]['online'] = 'offline'; + } } } else if ($data[0] == "starts") { $d = array_shift($return); @@ -138,11 +145,44 @@ while ($data = array_shift($return)) { $d = array_shift($return); if ($d[0] == "state") { $d = array_shift($return); - $leases[$i]['act'] = $d[0]; + switch($d[0]) { + case 'active': + $leases[$i]['act'] = 'active'; + break; + case 'free': + $leases[$i]['act'] = 'expired'; + break; + case 'backup': + $leases[$i]['act'] = 'reserved'; + $leases[$i]['online'] = 'offline'; + break; + } } } else if (($data[0] == "}") && ($data[1] == 1)) // End of group $i++; } +foreach($config['interfaces'] as $ifname => $ifarr) { + if (is_array($config['dhcpd'][$ifname]['staticmap'])) { + foreach($config['dhcpd'][$ifname]['staticmap'] as $static) { + $slease = array(); + $slease['ip'] = $static['ipaddr']; + $slease['type'] = "static"; + $slease['mac'] = $static['mac']; + $slease['start'] = gmdate("M d Y H:i:s", time()); + $slease['end'] = gmdate("M d Y H:i:s", time()); + $slease['end'] = gmdate("M d Y H:i:s", strtotime('+5 minutes')); + $slease['hostname'] = $static['descr']; + $slease['act'] = "static"; + $online = exec("/usr/sbin/arp -an |/usr/bin/grep {$slease['mac']}| /usr/bin/wc -l|/usr/bin/awk '{print $1;}'"); + if ($online == 1) { + $slease['online'] = 'online'; + } else { + $slease['online'] = 'offline'; + } + $leases[] = $slease; + } + } +} if ($_GET['order']) usort($leases, "leasecmp"); @@ -153,12 +193,14 @@ if ($_GET['order']) <td class="listhdrr"><a href="?all=<?=$_GET['all'];?>&order=mac">MAC address</a></td> <td class="listhdrr"><a href="?all=<?=$_GET['all'];?>&order=hostname">Hostname</a></td> <td class="listhdrr"><a href="?all=<?=$_GET['all'];?>&order=start">Start</a></td> - <td class="listhdr"><a href="?all=<?=$_GET['all'];?>&order=end">End</a></td> + <td class="listhdrr"><a href="?all=<?=$_GET['all'];?>&order=end">End</a></td> + <td class="listhdr"><a href="?all=<?=$_GET['all'];?>&order=online">Online</a></td> + <td class="listhdr"><a href="?all=<?=$_GET['all'];?>&order=act">Lease Type</a></td> </tr> <?php foreach ($leases as $data) { - if (($data['act'] == "active") || ($_GET['all'] == 1)) { - if ($data['act'] != "active") { + if (($data['act'] == "active") || ($data['act'] == "static") || ($_GET['all'] == 1)) { + if ($data['act'] != "active" && $data['act'] != "static") { $fspans = "<span class=\"gray\">"; $fspane = "</span>"; } else { @@ -173,16 +215,25 @@ foreach ($leases as $data) { } echo "<tr>\n"; echo "<td class=\"listlr\">{$fspans}{$data['ip']}{$fspane} </td>\n"; - if ($data['act'] != "active") { + if ($data['online'] != "online") { echo "<td class=\"listr\">{$fspans}<a href=\"services_wol.php?if={$data['if']}&mac={$data['mac']}\" title=\"send Wake on Lan packet to mac\">{$data['mac']}</a>{$fspane} </td>\n"; } else { - echo "<td class=\"listr\">{$fspans}{$data['mac']}{$fspane} </td>\n"; + echo "<td class=\"listr\">{$fspans}{$data['mac']}{$fspane} </td>\n"; } echo "<td class=\"listr\">{$fspans}{$data['hostname']}{$fspane} </td>\n"; echo "<td class=\"listr\">{$fspans}" . adjust_gmt($data['start']) . "{$fspane} </td>\n"; echo "<td class=\"listr\">{$fspans}" . adjust_gmt($data['end']) . "{$fspane} </td>\n"; - echo "<td class=\"list\" valign=\"middle\"><a href=\"services_dhcp_edit.php?if={$data['if']}&mac={$data['mac']}&descr={$data['hostname']}\">"; - echo "<img src=\"/themes/{$g['theme']}/images/icons/icon_plus.gif\" width=\"17\" height=\"17\" border=\"0\" title=\"add a static mapping for this MAC address\"></a></td>\n"; + echo "<td class=\"listr\">{$fspans}{$data['online']}{$fspane} </td>\n"; + echo "<td class=\"listr\">{$fspans}{$data['act']}{$fspane} </td>\n"; + + if ($data['type'] == "dynamic") { + echo "<td class=\"list\" valign=\"middle\"><a href=\"services_dhcp_edit.php?if={$data['if']}&mac={$data['mac']}&descr={$data['hostname']}\">"; + echo "<img src=\"/themes/{$g['theme']}/images/icons/icon_plus.gif\" width=\"17\" height=\"17\" border=\"0\" title=\"add a static mapping for this MAC address\"></a></td>\n"; + } else { + echo "<td class=\"list\" valign=\"middle\">"; + echo "<img src=\"/themes/{$g['theme']}/images/icons/icon_plus_mo.gif\" width=\"17\" height=\"17\" border=\"0\"</td>\n"; + } + echo "<td valign=\"middle\"><a href=\"services_wol_edit.php?if={$data['if']}&mac={$data['mac']}&descr={$data['hostname']}\">"; echo "<img src=\"/themes/{$g['theme']}/images/icons/icon_wol_all.gif\" width=\"17\" height=\"17\" border=\"0\" title=\"add a Wake on Lan mapping for this MAC address\"></a></td>\n"; echo "</tr>\n"; @@ -195,10 +246,10 @@ foreach ($leases as $data) { <input type="hidden" name="order" value="<?=$_GET['order'];?>"> <?php if ($_GET['all']): ?> <input type="hidden" name="all" value="0"> -<input type="submit" class="formbtn" value="Show active leases only"> +<input type="submit" class="formbtn" value="Show active and static leases only"> <?php else: ?> <input type="hidden" name="all" value="1"> -<input type="submit" class="formbtn" value="Show active and expired leases"> +<input type="submit" class="formbtn" value="Show all configured leases"> <?php endif; ?> </form> <?php else: ?> |