Add Traffic Filter for Private IPv4 Networks (#4279)

This commit is contained in:
kcaj-burr 2020-08-23 19:14:53 +02:00 committed by GitHub
parent 5d8302f3c3
commit 2a7a3a97e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -87,7 +87,21 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') {
$real_interface = get_real_interface($pconfig['if']);
$intsubnet = find_interface_network($real_interface);
if (is_subnetv4($intsubnet)) {
$cmd_args = $pconfig['filter'] == "local" ? " -c " . $intsubnet . " " : " -lc 0.0.0.0/0 ";
switch ( $pconfig['filter'] ) {
case 'local':
$cmd_args = " -c " . $intsubnet . " ";
break;
case 'private':
$cmd_args = " -c 172.16.0.0/12 -c 192.168.0.0/16 -c 10.0.0.0/8 ";
break;
default:
$cmd_args = " -lc 0.0.0.0/0 ";
break;
}
$cmd_args .= $pconfig['sort'] == "out" ? " -T " : " -R ";
$cmd_action = "/usr/local/bin/rate -v -i {$real_interface} -nlq 1 -Aba 20 {$cmd_args} | tr \"|\" \" \" | awk '{ printf \"%s:%s:%s:%s:%s\\n\", $1, $2, $4, $6, $8 }'";
exec($cmd_action, $listedIPs);
@ -135,6 +149,9 @@ include("head.inc");
margin: 0px;
margin-bottom: -5px;
}
.table-striped select {
max-width: none;
}
</style>
<script>
var graphtable = {};
@ -348,6 +365,9 @@ include("head.inc");
<option value="local" <?=$pconfig['filter'] == "local" ? " selected=\"selected\"" : "";?>>
<?= gettext('Local') ?>
</option>
<option value="private" <?=$pconfig['filter'] == "private" ? " selected=\"selected\"" : "";?>>
<?= gettext('RFC1918 Private Networks') ?>
</option>
<option value="all" <?=$pconfig['filter'] == "all" ? " selected=\"selected\"" : "";?>>
<?= gettext('All') ?>
</option>