header(); if(!Auth::hasPermission('SERVER::NETWORK')) { ?> footer(); exit(); } ?>
hasDevices()) { ?>

getDevices() as $entry) { if(!$entry->isTunnel() && !$entry->isVirtual() && $entry->getType() == 'ether') { ?>
getState()) { case NetworkState::UP: $status = 'text-success'; break; case NetworkState::DOWN: $status = 'text-danger'; break; case NetworkState::UNKNOWN: $status = 'text-warning'; break; } Icon::show('network', [ 'classes' => [ 'align-self-start', 'flex-shrink-1', 'bg-dark', 'rounded', $status, 'p-2', 'm-2' ], 'attributes' => [ 'style' => 'font-size: 30px' ], 'data-current' => 'theme-auto' ]); ?>

getID(); ?>

hasDevices()) { ?>
ID getID(); ?>
Type getType(); ?>
Address getAddress(); ?>
Broadcast getBroadcast(); ?>
getFlags() as $flag) { if($flag === null) { continue; } $color = 'light'; switch($flag) { case NetworkFlag::UP: $color = 'success'; break; case NetworkFlag::DEBUG: $color = 'danger'; break; case NetworkFlag::DORMANT: $color = 'warning'; break; } printf('%s', $color, NetworkFlag::for($flag)); } ?>
Virtual isVirtual() ? I18N::get('Yes') : I18N::get('No')); ?>
Tunnel isTunnel() ? I18N::get('Yes') : I18N::get('No')); ?>
hasAddresses()) { ?>
getAddresses() as $entry) { $color = 'light'; switch($entry->getFamily()) { case NetworkFamily::IPV4: $color = 'danger'; break; case NetworkFamily::IPV6: $color = 'warning'; break; } ?>
getFamily()); ?> getName(); ?> getAddress(); if($entry->getFamily() == NetworkFamily::IPV6) { $link = sprintf('[%s]', $link); } printf('%2$s', $link, $entry->getAddress()); ?> getBroadcast(); ?> getTTL(); // @see https://github.com/iproute2/iproute2/blob/main/ip/ip_common.h#L219 // INFINITY_LIFE_TIME = 0xFFFFFFFFU, unsigned if($ttl == 0) { print 'zero'; } else if($ttl == 0xFFFFFFFF) { print 'forever'; } else { printf('%s %s', $ttl, I18N::get('Seconds')); } ?>

footer(); ?>