Der zu scannende Adressbereich:
Der Quelltext dieser Seite:
<form>
IP - Startadresse: <br>
<input type="text" id="startIP" name="startIP" value="192.168.1.0"> <br>
IP - Endadresse: <br>
<input type="text" id="endIP" name="endIP" value="192.168.1.10"> <br>
Timeout: <br>
<input type="text" name="timeout" value="1000"> (Der Timeout-Wert muss evtl. erhöht werden) <br>
Ergebnis: <br>
<textarea id="ergebnis" name="ergebnis" rows="20" cols="50"></textarea><br>
<input type="button" value="scan" onClick="javascript:scanne(this.form)">
</form>
<script>
function scanPort(callback, host, endIP, timeout) {
var timeout = (timeout == null)?100:timeout;
var img = new Image();
img.onerror = function () {
if (!img) return;
img = undefined;
callback(host, 'offen');
};
img.onload = img.onerror;
img.src = 'http://' + host;
setTimeout(function () {
if (!img) return;
img = undefined;
callback(host, 'geschlossen');
}, timeout);
};
function erzeugeIPArray(ipString) {
var stringArray = ipString.split('.');
// String in Array mit Strings aufteilen
var intArray = new Array();
// Array fŸr Integer-Werte bereitstellen
var i;
for(i =0; i < stringArray.length; i++)
{
intArray[i] = parseInt(stringArray[i]);
// String in Integer-Wert umwandeln
}
return intArray;
};
function erzeugeIPString(ip) {
return ip[0] + "." + ip[1] + "." + ip[2] + "." + ip[3];
};
function erhoeheIP(dieIP) {
var i;
for(i = 3; i >= 0; i--)
{
if(dieIP[i] < 255 || i == 0)
{
dieIP[i]++;
return dieIP;
}
else {
// Der Wert im aktuellen Segment i kann nicht erhšht werden,
// da dass zu einem †berlauf fŸhren wŸrde
// Daher muss im Segment davor weitergemacht werden
dieIP[i] = 0;
dieIP[i-1]++;
}
}
return dieIP;
};
function ipIstGroesser(ip1, ip2) {
var i;
for(i = 0; i < 4; i++) {
if(ip1[i] > ip2[i]) {
return true;
}
if(ip1[i] < ip2[i]) {
return false;
} else {
// Adressen sind gleich
}
}
return false;
};
function weiter(callback, aktuelleIP, endIP, timeout) {
if (ipIstGroesser(erzeugeIPArray(aktuelleIP), erzeugeIPArray(endIP)) == true) {
// fertig!
return;
} else {
scanHosts(callback, aktuelleIP, endIP, timeout);
}
};
function scanHosts(callback, aktuelleIP, endIP, timeout) {
scanPort(callback, aktuelleIP, endIP, timeout);
var neueIP = erhoeheIP(erzeugeIPArray(aktuelleIP));
weiter(callback, erzeugeIPString(neueIP), endIP, timeout);
};
var ergebnis = document.getElementById('ergebnis');
function callback(host, status) {
ergebnis.value += host + " : " + status + "\n";
};
function scanne(form) {
scanHosts(callback, form.startIP.value, form.endIP.value, form.timeout.value);
};
</script>
Zurück zur Kapitel-Startseite oder zur Doku-Startseite