Add network.php
This commit is contained in:
parent
6b1fb1b7e8
commit
0161177405
1 changed files with 135 additions and 0 deletions
135
network.php
Normal file
135
network.php
Normal file
|
|
@ -0,0 +1,135 @@
|
||||||
|
<?php
|
||||||
|
$api_url_interracks = 'https://librenmsurl/api/v0/ports/12345';
|
||||||
|
$api_url_eranium = 'https://librenmsurl/api/v0/ports/1234';
|
||||||
|
$api_token = 'librenms_api_key';
|
||||||
|
|
||||||
|
// Functie om API-gegevens op te halen
|
||||||
|
function getApiData($url, $token) {
|
||||||
|
$headers = [
|
||||||
|
'X-Auth-Token: ' . $token
|
||||||
|
];
|
||||||
|
|
||||||
|
$ch = curl_init();
|
||||||
|
curl_setopt($ch, CURLOPT_URL, $url);
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||||
|
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||||||
|
|
||||||
|
$response = curl_exec($ch);
|
||||||
|
curl_close($ch);
|
||||||
|
|
||||||
|
return json_decode($response, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Haal netwerkbelasting op voor InterRacks
|
||||||
|
$interracks_data = getApiData($api_url_interracks, $api_token);
|
||||||
|
|
||||||
|
// Haal netwerkbelasting op voor Eranium
|
||||||
|
$eranium_data = getApiData($api_url_eranium, $api_token);
|
||||||
|
|
||||||
|
// Functie om de snelheid en belasting te berekenen
|
||||||
|
function calculateTrafficData($port_data) {
|
||||||
|
// Verkrijg de benodigde gegevens
|
||||||
|
$ifInOctets_prev = isset($port_data['ifInOctets_prev']) ? $port_data['ifInOctets_prev'] : 0;
|
||||||
|
$ifOutOctets_prev = isset($port_data['ifOutOctets_prev']) ? $port_data['ifOutOctets_prev'] : 0;
|
||||||
|
$ifInOctets = isset($port_data['ifInOctets']) ? $port_data['ifInOctets'] : 0;
|
||||||
|
$ifOutOctets = isset($port_data['ifOutOctets']) ? $port_data['ifOutOctets'] : 0;
|
||||||
|
$poll_period = isset($port_data['poll_period']) ? $port_data['poll_period'] : 60; // Polling period in seconds
|
||||||
|
|
||||||
|
// Bereken de snelheid in bps voor inkomend en uitgaand verkeer
|
||||||
|
$in_rate_bps = (($ifInOctets - $ifInOctets_prev) / $poll_period) * 8; // Omrekeningen naar bits
|
||||||
|
$out_rate_bps = (($ifOutOctets - $ifOutOctets_prev) / $poll_period) * 8; // Omrekeningen naar bits
|
||||||
|
|
||||||
|
// Bereken de belasting als percentage (indien je de snelheid als percentage van 10 Gbps wilt)
|
||||||
|
$max_speed = 10000000000; // 10 Gbps in bits per seconde
|
||||||
|
$in_perc = ($in_rate_bps / $max_speed) * 100;
|
||||||
|
$out_perc = ($out_rate_bps / $max_speed) * 100;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'in_rate_bps' => $in_rate_bps,
|
||||||
|
'out_rate_bps' => $out_rate_bps,
|
||||||
|
'in_perc' => $in_perc,
|
||||||
|
'out_perc' => $out_perc
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bereken de gegevens voor InterRacks
|
||||||
|
$interracks_traffic = isset($interracks_data['port'][0]) ? calculateTrafficData($interracks_data['port'][0]) : [
|
||||||
|
'in_rate_bps' => 0, 'out_rate_bps' => 0, 'in_perc' => 0, 'out_perc' => 0
|
||||||
|
];
|
||||||
|
|
||||||
|
// Bereken de gegevens voor Eranium
|
||||||
|
$eranium_traffic = isset($eranium_data['port'][0]) ? calculateTrafficData($eranium_data['port'][0]) : [
|
||||||
|
'in_rate_bps' => 0, 'out_rate_bps' => 0, 'in_perc' => 0, 'out_perc' => 0
|
||||||
|
];
|
||||||
|
|
||||||
|
// Optellen van de percentages en vervolgens delen door 2 ivm dubbel de port speed
|
||||||
|
$total_in_perc = ($interracks_traffic['in_perc'] + $eranium_traffic['in_perc']) / 2;
|
||||||
|
$total_out_perc = ($interracks_traffic['out_perc'] + $eranium_traffic['out_perc']) / 2;
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>AS215085.net | PixelHosting</title>
|
||||||
|
<meta name="description" content="AS215085 Network information" />
|
||||||
|
<link rel="canonical" href="https://s215085.net" />
|
||||||
|
<meta property="og:locale" content="en_US" />
|
||||||
|
<meta property="og:site_name" content="AS215085.net | PixelHosting" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:title" content="AS215085.net | PixelHosting" />
|
||||||
|
<meta property="og:description" content="AS215085 Network information" />
|
||||||
|
<meta property="og:url" content="https://as215085.net" />
|
||||||
|
<link rel="icon" type="image/png" href="img/cropped-Pixelhosting-logo-favicon-32x32.png">
|
||||||
|
<link rel="stylesheet" href="css/style.css">
|
||||||
|
<script>
|
||||||
|
setInterval(function() {
|
||||||
|
location.reload();
|
||||||
|
}, 60000);
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<h1>AS215085</h1>
|
||||||
|
<p>Proudly powering PixelHosting infrastructure</p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<nav>
|
||||||
|
<a href="/">Home</a>
|
||||||
|
<a href="/network.php">Network</a>
|
||||||
|
<a href="/peering.html">Peering policy</a>
|
||||||
|
<a href="https://lookingglass.as215085.net" target="_blank">Looking glass</a>
|
||||||
|
<a href="https://smokeping.as215085.net" target="_blank">Smokeping</a>
|
||||||
|
<a href="https://status.as215085.net" target="_blank">Status</a>
|
||||||
|
<a href="/contact.html">Contact</a>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<section id="overview">
|
||||||
|
<h2>Network</h2>
|
||||||
|
<p>On this page you can view our network structure.</p>
|
||||||
|
<p>Total traffic: IN: <?= number_format($total_in_perc, 2) ?>% | OUT: <?= number_format($total_out_perc, 2) ?>% @ 20.000 Mbit/sec</p>
|
||||||
|
<div class="container">
|
||||||
|
<div class="upstreamcon">
|
||||||
|
<h2>Upstream: InterRacks</h2>
|
||||||
|
<p>Port speed: 10.000 Mbit/sec</p>
|
||||||
|
<p class="data">Incomming traffic: <?= number_format($interracks_traffic['in_perc'], 2) ?>%</p>
|
||||||
|
<p class="data">Outgoing traffic: <?= number_format($interracks_traffic['out_perc'], 2) ?>%</p>
|
||||||
|
</div>
|
||||||
|
<div class="upstreamcon">
|
||||||
|
<h2>Upstream: Eranium</h2>
|
||||||
|
<p>Port speed: 10.000 Mbit/sec</p>
|
||||||
|
<p class="data">Incomming traffic: <?= number_format($eranium_traffic['in_perc'], 2) ?>%</p>
|
||||||
|
<p class="data">Outgoing traffic: <?= number_format($eranium_traffic['out_perc'], 2) ?>%</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
<p>© 2024 AS215085 (PixelHosting). All rights reserved.</p>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue