Hi Leute, ich habe ein kleines Javascript, was die Erreichbarkeit eines Webservers überprüfen soll und dann dahin umleiten soll. Für einige Server gibt es einen Mirror (wenn der erste nicht erreichbar ist) wohin dann umgeleitet werden soll. Überprüft wird dies indem ein Bild was auf jedem Webspace liegt (lokale Server im Heimnetz) versucht wird aufzurufen wenn möglich = server erreichbar = dahin umleiten.
Leider funktioniert das Script nicht (vermutlich ein grober Typo) aber ich finde einfach den Fehler nicht und hoffe, ihr könnt mit mit eurem paar Augen weiterhelfen. =)
Der Aufruf erfolgt über einen Link der bspw so aussieht: "/check.html?=server1"
Gruß
Iv0ry
Leider funktioniert das Script nicht (vermutlich ein grober Typo) aber ich finde einfach den Fehler nicht und hoffe, ihr könnt mit mit eurem paar Augen weiterhelfen. =)
Der Aufruf erfolgt über einen Link der bspw so aussieht: "/check.html?=server1"
Java:
<html>
<head>
</head>
<body>
<span id="status">Teste Server erreichbarkeit ...</span>
<script>
function getURLParameter(name) {
var value = decodeURIComponent((RegExp(name + '=' + '(.+?)(&|$)').exec(location.search) || [, ""])[1]);
return (value !== 'null') ? value : false;
}
const SERVERS = {
'server1': ['192.168.1.1', '192.168.1.11'], // hat einen Mirror auf der .11
'server2': ['192.168.1.2'], // nur ein server ohne mirror
'server3': ['192.168.1.3'], // nur ein server ohne mirror
'server4': ['192.168.1.4', '192.168.1.14'], // hat einen Mirror auf der .14
}
function checker(name, index) {
// Check if input is valid
if (!SERVERS.hasOwnProperty(name)) {
console.error('Server "${NAME}" is not valid');
}
if (index >= SERVERS[name].length) {
console.error('Invalid server index');
}
// Create (non-visible) image for reachable check
let image = new Image();
// Success handler which redirects to the ip
image.onload = () => {
window.location.replace('http://${SERVERS[name][index]}');
}
// Failed handler which calls the check method again if we have servers to check, otherwise display error message
image.onerror = () => {
if (SERVERS[name].length > index + 1) {
checker(name, index + 1);
} else {
document.getElementById('status').innerHTML = 'Der Server "${name}" ist leider nicht erreichbar!';
}
}
img.src = 'http://${SERVER[name][index]}/logo.gif';
}
checker(getURLParameter('srv'), 0);
</script>
</body>
</html>
Gruß
Iv0ry