"; $in = "\"\""; if (is_array($config['aliases']['alias'])) { foreach ($config['aliases']['alias'] as $cbalias) { if (preg_match("/pfB_/", $cbalias['name'])) { if (file_exists("{$pfb['aliasdir']}/{$cbalias['name']}.txt")) { preg_match("/(\d+)/", exec("/usr/bin/grep -cv \"^1\.1\.1\.1\" {$pfb['aliasdir']}/{$cbalias['name']}.txt"), $matches); $pfb_table[$cbalias['name']] = array("count" => $matches[1], "img" => $out); $updates = exec("ls -ld {$pfb['aliasdir']}/{$cbalias['name']}.txt | awk '{ print $6,$7,$8 }'", $update); $pfb_table[$cbalias['name']]['up'] = $updates; } } } } // Collect if Rules are defined using pfBlockerNG Aliases. if (is_array($config['filter']['rule'])) { foreach ($config['filter']['rule'] as $rule) { if (preg_match("/pfB_/",$rule['source']['address']) || preg_match("/pfb_/",$rule['source']['address'])) { $pfb_table[$rule['source']['address']]['img'] = $in; } if (preg_match("/pfB_/",$rule['destination']['address']) || preg_match("/pfb_/",$rule['destination']['address'])) { $pfb_table[$rule['destination']['address']]['img'] = $in; } } return $pfb_table; } } // Status Indicator if pfBlockerNG is Enabled/Disabled if ("{$pfb['enable']}" == "on") { $pfb_status = "/themes/{$g['theme']}/images/icons/icon_pass.gif"; $pfb_msg = "pfBlockerNG is Active."; } else { $pfb_status = "/themes/{$g['theme']}/images/icons/icon_block.gif"; $pfb_msg = "pfBlockerNG is Disabled."; } // Collect Total IP/Cidr Counts $dcount = exec("cat {$pfb['denydir']}/*.txt | grep -cv '^#\|^$\|^1\.1\.1\.1'"); $pcount = exec("cat {$pfb['permitdir']}/*.txt | grep -cv '^#\|^$\|^1\.1\.1\.1'"); $mcount = exec("cat {$pfb['matchdir']}/*.txt | grep -cv '^#\|^$\|^1\.1\.1\.1'"); $ncount = exec("cat {$pfb['nativedir']}/*.txt | grep -cv '^#\|^$\|^1\.1\.1\.1'"); // Collect Number of Suppressed Hosts if (file_exists("{$pfb['supptxt']}")) { $pfbsupp_cnt = exec ("/usr/bin/grep -c ^ {$pfb['supptxt']}"); } else { $pfbsupp_cnt = 0; } #check rule count #(label, evaluations,packets total, bytes total, packets in, bytes in,packets out, bytes out) $packets = exec("/sbin/pfctl -s labels", $debug); if (!empty($debug)) { foreach ($debug as $line) { // Auto-Rules start with 'pfB_', Alias Rules should start with 'pfb_' and exact spelling of Alias Name. $line = str_replace("pfb_","pfB_",$line); if ("{$pfb['pfsenseversion']}" >= '2.2') { #USER_RULE: pfB_Top auto rule 8494 17 900 17 900 0 0 0 if (preg_match("/USER_RULE: (\w+).*\s+\d+\s+(\d+)\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+/", $line, $matches)) { if (isset($matches)) { ${$matches[1]}+=$matches[2]; } else { ${$matches[1]} = 'Err'; } } } else { #USER_RULE: pfB_Top auto rule 1656 0 0 0 0 0 0 if (preg_match("/USER_RULE: (\w+).*\s+\d+\s+(\d+)\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+/", $line, $matches)) { if (isset($matches)) { ${$matches[1]}+=$matches[2]; } else { ${$matches[1]} = 'Err'; } } } } } // Called by Ajax to update alerts table contents if (isset($_GET['getNewCounts'])) { $response = ""; $pfb_table = pfBlockerNG_get_counts(); if (!empty($pfb_table)) { foreach ($pfb_table as $alias => $values){ if (!isset(${$alias})) { ${$alias} = "-";} $response .= $alias . "||" . $values['count'] . "||" . ${$alias} . "||" . $values['up'] . "||" . $values['img'] . "\n"; } echo $response; return; } } // Report any Failed Downloads $results = array(); $fails = exec("grep $(date +%m/%d/%y) {$pfb['errlog']} | grep 'FAIL'", $results); // Print widget Status Bar Items ?>
     " . $dcount . "") ?> " . $pcount . "") ?> " . $mcount . ""); ?> " . $ncount . ""); ?> " . $pfbsupp_cnt . ""); ?>    " alt="" /> 
"/>
'2.0') { $alertRowEvenClass = "listMReven"; $alertRowOddClass = "listMRodd"; $alertColClass = "listMRr"; } else { $alertRowEvenClass = "listr"; $alertRowOddClass = "listr"; $alertColClass = "listr"; } # Last errors first $results = array_reverse($results); $counter = 0; # Max errors to display $maxfailcount = 3; if (!empty($results)) { foreach ($results as $result) { $alertRowClass = $counter % 2 ? $alertRowEvenClass : $alertRowOddClass; if (!isset(${$alias})) { ${$alias} = "-";} echo(" "); $counter++; if ($counter > $maxfailcount) { # To many errors stop displaying echo(" "); break; } } } // Print Main Table Header ?>
" . $result . "
" . (count($results) - $maxfailcount) . " more error(s)...
$values) { $evenRowClass = $counter % 2 ? " listMReven" : " listMRodd"; if (!isset(${$alias})) { ${$alias} = "-";} echo(" "); $counter++; } } ?>
{$alias} {$values['count']} {${$alias}} {$values['up']} {$values['img']}