addInput(new Form_Select(
'interface',
'Interface',
$ifselect,
$iflist
));
$section->addInput(new Form_Input(
'filter',
'Filter expression',
'text',
$_POST['filter'],
['placeholder' => 'Simple filter such as 192.168, v6, icmp or ESTABLISHED']
));
$filterbtn = new Form_Button(
'filterbtn',
'Filter',
null,
'fa-filter'
);
$filterbtn->addClass('btn-primary btn-sm');
$section->addInput(new Form_StaticText(
'',
$filterbtn
));
if (isset($_POST['filter']) && (is_ipaddr($_POST['filter']) || is_subnet($_POST['filter']))) {
$killbtn = new Form_Button(
'killfilter',
'Kill States',
null,
'fa-trash'
);
$killbtn->addClass('btn-danger btn-sm');
$section->addInput(new Form_StaticText(
'Kill filtered states',
$killbtn
))->setHelp('Remove all states to and from the filtered address');
}
$form->add($section);
print $form;
?>
=gettext("States")?>
=gettext("Interface")?> |
=gettext("Protocol")?> |
=gettext("Source (Original Source) -> Destination (Original Destination)")?> |
=gettext("State")?> |
=gettext("Packets")?> |
=gettext("Bytes")?> |
|
intval($ids[$i]));
}
}
/* Interface filter. */
if (isset($_POST['interface']) && $_POST['interface'] != "all") {
$arr[] = array("interface" => get_real_interface($_POST['interface']));
}
if (isset($_POST['filter']) && strlen($_POST['filter']) > 0) {
$arr[] = array("filter" => $_POST['filter']);
}
if (count($arr) > 0) {
$res = pfSense_get_pf_states($arr);
} else {
$res = pfSense_get_pf_states();
}
$states = 0;
if ($res != NULL && is_array($res)) {
$states = count($res);
}
/* XXX - limit to 10.000 states. */
if ($states > 10000) {
$states = 10000;
}
for ($i = 0; $i < $states; $i++) {
$info = $res[$i]['src'];
$srcip = get_ip($res[$i]['src']);
$dstip = get_ip($res[$i]['dst']);
if ($res[$i]['src-orig']) {
$info .= " (" . $res[$i]['src-orig'] . ")";
}
$info .= " -> ";
$info .= $res[$i]['dst'];
if ($res[$i]['dst-orig']) {
$info .= " (" . $res[$i]['dst-orig'] . ")";
$killdstip = get_ip($res[$i]['dst-orig']);
} else {
$killdstip = $dstip;
}
?>
= convert_real_interface_to_friendly_descr($res[$i]['if']) ?> |
= $res[$i]['proto'] ?> |
= $info ?> |
= $res[$i]['state'] ?> |
= format_number($res[$i]['packets in']) ?> /
= format_number($res[$i]['packets out']) ?> |
= format_bytes($res[$i]['bytes in']) ?> /
= format_bytes($res[$i]['bytes out']) ?> |
|
}
?>