Ungleich/app.js

146 lines
4.2 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const IPV4_EX = new RegExp("")
const regex = RegExp(/^((([09A-Fa-f]{1,4}:){7}[09A-Fa-f]{1,4})|(([09A-Fa-f]{1,4}:){6}:[09A-Fa-f]{1,4})|(([09A-Fa-f]{1,4}:){5}:([09A-Fa-f]{1,4}:)?[09A-Fa-f]{1,4})|(([09A-Fa-f]{1,4}:){4}:([09A-Fa-f]{1,4}:){0,2}[09A-Fa-f]{1,4})|(([09A-Fa-f]{1,4}:){3}:([09A-Fa-f]{1,4}:){0,3}[09A-Fa-f]{1,4})|(([09A-Fa-f]{1,4}:){2}:([09A-Fa-f]{1,4}:){0,4}[09A-Fa-f]{1,4})|(([09A-Fa-f]{1,4}:){6}((b((25[05])|(1d{2})|(2[04]d)|(d{1,2}))b).){3}(b((25[05])|(1d{2})|(2[04]d)|(d{1,2}))b))|(([09A-Fa-f]{1,4}:){0,5}:((b((25[05])|(1d{2})|(2[04]d)|(d{1,2}))b).){3}(b((25[05])|(1d{2})|(2[04]d)|(d{1,2}))b))|(::([09A-Fa-f]{1,4}:){0,5}((b((25[05])|(1d{2})|(2[04]d)|(d{1,2}))b).){3}(b((25[05])|(1d{2})|(2[04]d)|(d{1,2}))b))|([09A-Fa-f]{1,4}::([09A-Fa-f]{1,4}:){0,5}[09A-Fa-f]{1,4})|(::([09A-Fa-f]{1,4}:){0,6}[09A-Fa-f]{1,4})|(([09A-Fa-f]{1,4}:){1,7}:))$/)
var addresses = []
var date = []
var ipv4_v6 = [[], [] , []]
//colors object for different graphs
var chartColors = {
red: 'rgb(255, 99, 132)',
orange: 'rgb(255, 159, 64)',
yellow: 'rgb(255, 205, 86)',
green: 'rgb(75, 192, 192)',
blue: 'rgb(54, 162, 235)',
purple: 'rgb(153, 102, 255)',
grey: 'rgb(231,233,237)'
};
//test function for ip addresses
function Ip4OrIp6(ipAddress){
if(ipAddress.length == 39){
return 1;
}else{
return -1;
}
}
var randomScalingFactor = function() {
return (Math.random() > 0.5 ? 1.0 : -1.0) * Math.round(Math.random() * 100);
}
// Refactor getStudents and getScores to return Promise for their response bodies
function getData(){
return fetch(`address.json`, {
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
}
}).then((response) => response.json())
};
getData().then((data)=>{
//pushing the dates
data[0].forEach(element => {
date.push(element.date)
// Ip4OrIp6(element.ip);
});
data.forEach((element ,i) =>{
element.map((e) =>{
ipv4_v6[i].push(Ip4OrIp6(e.ip));
})
})
// data[1].forEach(element =>{
// ipv4_v6[1].push(Ip4OrIp6(element.ip))
// })
// data[2].forEach(element =>{
// ipv4_v6[2].push(Ip4OrIp6(element.ip))
// })
// console.log(date);
// console.log(ipv4_v6);
date.sort((a, b)=>{
return new Date(a) - new Date(b)
})
var ctx = document.getElementById("myChart").getContext('2d');
var chart = new Chart(ctx, {
type: 'line',
data: {
labels:date,
datasets: [
{
label: "My First dataset",
// backgroundColor: chartColors.red,
borderColor: chartColors.red,
data:ipv4_v6[0],
fill: false,
}, {
label: "My Second dataset",
fill: false,
// backgroundColor: chartColors.blue,
borderColor: chartColors.blue,
data:ipv4_v6[1],
},
{
label: "My Second dataset",
fill: false,
// backgroundColor: chartColors.orange,
borderColor: chartColors.orange,
data: ipv4_v6[2],
}
]
},
options: {
legend: { display: false },
title: {
display: true,
text: 'Statistics for IPV4 and IPV6'
},
scales: {
xAxes: [{
display: true,
gridLines: {
display: false ,
color: "blue"
},
scaleLabel: {
display: true,
labelString: 'Time',
}
}],
yAxes: [{
display: true,
gridLines: {
display: false ,
color: "blue"
},
scaleLabel: {
display: true,
labelString: 'Ipv4 or Ipv6',
}
}]
}
} }
)});