diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7276e7d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +confs/ diff --git a/style.css b/style.css index 6c257d2..101e797 100644 --- a/style.css +++ b/style.css @@ -9,11 +9,13 @@ main > table { margin: auto; } .member { - border-collapse: collapse; + border-spacing: 0; + margin: 0; border: 4px solid #335; } .vlans { - border-collapse: collapse; + border-spacing: 0; + /*! border-collapse: collapse; */ } .member td, .vlans td { @@ -24,11 +26,29 @@ main > table { min-width: 2em; height: 2em; mix-blend-mode: darken; + padding: 3px; } +.access, .pvid { - background-color: hsl(var(--pvid) 100% 58%); + background-color: hsl(var(--pvid) 100% 65%); +} +.trunk { + position: relative; + font-weight: bold; + border: 5px solid !important; + border-width: 5px !important; + border-image-slice: 1 !important; + border-image-source: linear-gradient(127deg, red, orange, yellow, green, blue, violet) !important; + padding: 0; + +} +.hybrid { + background-image: linear-gradient(135deg, hsl(var(--tagged) 100% 65%) 1.6rem, hsl(var(--untagged) 100% 65%) 1.6rem); } .shutdown { background-color: lightgray; color: gray; } +td { + text-align: left +} diff --git a/vlans.php b/vlans.php index 8b838de..03572a6 100644 --- a/vlans.php +++ b/vlans.php @@ -10,17 +10,20 @@ $conf = file_get_contents($path); preg_match("/ sysname ([\w-]+)/", $conf, $sysname); preg_match("/ip address ([\d.]+)/", $conf, $address); -preg_match_all("/\nvlan (?P\d+)(?:[\r\n]+ name (?P.+))?(?:[\r\n]+ description (?P.*))?/", $conf, $vlans, PREG_SET_ORDER); -preg_match_all("/\n(?P(?Pinterface [\w-]+(?:[\r\n]+ .*)*(?P\d+)\/0\/(?P\d+))[\r\n]+(?: description (?P.*))?[\r\n]+(?P shutdown[\r\n]+)?(?: port access vlan (?P\d+)[\r\n]+| .*[\r\n]+)*)/", $conf, $interfaces, PREG_SET_ORDER); - +preg_match_all("/(?<=\n)vlan (?P\d+)[\r\n]+(?: name (?P.+)[\r\n]+| description (?P.+)[\r\n]+| .*[\r\n]+)*/", $conf, $vlans, PREG_SET_ORDER); +preg_match_all("/(?<=\n)interface [\w-]+(?P\d+)\/0\/(?P\d+)[\r\n]+(?: port hybrid vlan (?P\d+) tagged[\r\n]+| port hybrid vlan (?P\d+)(?: \d+)* untagged[\r\n]+| port (?Paccess|trunk pvid|hybrid pvid) vlan (?P\d+)[\r\n]+| (?Pshutdown)[\r\n]+| .*[\r\n]+)*/", $conf, $interfaces, PREG_SET_ORDER); $stack = array(); foreach ($interfaces as $interface) { - if (!$stack[$interface["member"]]) { + if (!isset($stack[$interface["member"]])) { $stack[$interface["member"]] = array(); } $stack[$interface["member"]][$interface["port"]] = $interface; } +echo "\n"; ?> @@ -32,7 +35,7 @@ foreach ($interfaces as $interface) {

-
+

@@ -40,36 +43,43 @@ foreach ($interfaces as $interface) {

Interfaces

${interface["port"]}\n"; + } +} + foreach ($stack as $member => $interfaces) { echo "\n$member\n\n\n\n\n"; - foreach ($interfaces as $interface) { - if ($interface["port"] % 2) { - echo "\n"; - } - } + foreach ($interfaces as $interface) display_port($interface, 1); echo "\n\n"; - foreach ($interfaces as $interface) { - if ($interface["port"] % 2 == 0) { - echo "\n"; - } - } + foreach ($interfaces as $interface) display_port($interface, 0); echo "\n\n
".$interface["port"]."
".$interface["port"]."
\n\n\n"; } ?> - +"; + if (isset($vlan["pvid"]) and $vlan["pvid"] != 1) { + $name = isset($vlan["name"]) ? $vlan["name"] : ""; + $description = isset($vlan["description"]) ? $vlan["description"] : ""; + echo ""; } } ?> - + + +

VLANs

Légende

PVIDNomDescription
${vlan["pvid"]}${vlan["name"]}${vlan["description"]}
${vlan["pvid"]}$name$description
Interface désactivée
TTrunk
HHybride (tagged/untagged)
SInterface désactivée