Datoru tīkli “IP adresācija un apakštīkli” programma

RĒZEKNES AUGSTSKOLA
INŽENIERU FAKULTĀTE

Praktiskais darbs
Datoru tīkli
IP ADRESĀCIJA UN APAKŠTĪKLI

Augstākās profesionālās izglītības
studiju programmas “Inženieris programmētājs”
2.kursa studente
*************
***********

Lektors *************

Rēzekne
2006
Programma realizēta, izmantojot skriptēšanas valodas JavaScript iespējas. Es izveidoju četrus HTML failus, kas realizē abus dotos uzdevumus. Starta fails – index.html. Pārlūkprogramma – Internet Explorer. Programmas, kurās tika veidoti faili: Notepad un Smart Editor 3.0 Freeware.

Programmas listings ar komentāriem
Fails index.html
<HTML>
<HEAD>
<title> *********** </title>
<frameset rows=”100,*” border=”0″>
<frame src=”logo.html” frameborder=”no”>
<FRAMESET COLS=”500,*” BORDER=”0″>
<FRAME SRC=”addresses.html” FRAMEBORDER=”NO”>
<frame src=”calculator.html” frameborder=”NO”>
</frameset>
</FRAMESET>
</HEAD>
</HTML>

Fails addresses.html (izvada informāciju par ievadīto adresi)

<HTML>
<HEAD>
<script language=”JavaScript” type=”text/javascript”>
<!–
var a;var b;var c;var d;var i;var j; /*mainīgie*/
function ShowResults() {
/*pati funkcija, kas izskaitļo un izvada rezultātu */
a=parseInt(first.one.value);
/*pārveidojam lietotāja ievadītos skaitļus no teksta skaitļu formā*/
b=parseInt(first.two.value);
c=parseInt(first.three.value);
d=parseInt(first.four.value);
if ((a<1) || (a>254)) {
/*pārbaudām lietotāja ievadītās vērtības un kļūdas gadījumā paziņojam par to lietotājam*/
alert(“Pārbaudiet pirmo ievadīto vērtību!”); return; }
if ((b<0) || (b>254)) {
alert(“Pārbaudiet otro ievadīto vērtību!”); return; }
if ((c<0) || (c>254)) {
alert(“Pārbaudiet trešo ievadīto vērtību!”); return; }
if ((d<0) || (d>254)) {
alert(“Pārbaudiet ceturto ievadīto vērtību!”); return; }
if ((a>=1) && (a<=126)) {
/*skatāmies, vai ievadītais cipars atbilst vajadzīgajai klasei; ja atbilst, tad izvadām visu nepieciešamo informāciju tabulas veidā */
document.write(“<TABLE BORDER=5><B><TH>Tīkla adrese</TH><TH>Klase</TH><TH>Tīkla maska</TH><TH>Broadcast adrese</TH>”);
document.write(“<TR>”);
document.write(“<TD>”+a+”.0.0.0″+”</TD>”);
document.write(“<TD>”+”A klases adrese<BR> (126 tīkli ar 16777214 iespējamiem mezgliem katrā)”+”</TD>”);
document.write(“<TD>”+”255.0.0.0″+”</TD>”);
document.write(“<TD>”+a+”.255.255.255″+”</TD>”);
document.write(“</TR>”);
document.write(“</TABLE>”);
}
if ((a>=128) && (a<=191)) {
/*skatāmies, vai ievadītais cipars atbilst vajadzīgajai klasei; ja atbilst, tad izvadām visu nepieciešamo informāciju tabulas veidā */
document.write(“<TABLE BORDER=5><B><TH>Tīkla adrese</TH><TH>Klase</TH><TH>Tīkla maska</TH><TH>Broadcast adrese</TH>”);
document.write(“<TR>”);
document.write(“<TD>”+a+”.”+b+”.0.0</TD>”);
document.write(“<TD>”+”B klases adrese<BR> (16384 tīkli ar 65534 iespējamiem mezgliem katrā)</TD>”);
document.write(“<TD>”+”255.255.0.0</TD>”);
document.write(“<TD>”+a+”.”+b+”.255.255</TD>”);
document.write(“</TR>”);
document.write(“</TABLE>”);
}
if ((a>=192) && (a<=223)) {
/*skatāmies, vai ievadītais cipars atbilst vajadzīgajai klasei; ja atbilst, tad izvadām visu nepieciešamo informāciju tabulas veidā */
document.write(“<TABLE BORDER=5><B><TH>Tīkla adrese</TH><TH>Klase</TH><TH>Tīkla maska</TH><TH>Broadcast adrese</TH>”);
document.write(“<TR>”);
document.write(“<TD>”+a+”.”+b+”.”+c+”.”+”</TD>”);
document.write(“<TD>”+”C klases adrese<BR>(2097152 tiikli ar 254 iespējamiem mezgliem katrā)</TD>”);
document.write(“<TD>”+”255.255.255.0</TD>”);
document.write(“<TD>”+a+”.”+b+”.”+c+”.255</TD>”);
document.write(“</TR>”);
document.write(“</TABLE>”);
}
if ((a>=224) && (a<=239)) {/*skatāmies, vai ievadītais cipars atbilst vajadzīgajai klasei; ja atbilst, tad izvadām visu nepieciešamo informāciju */
document.write(“D klases adrese. Multicast adrese.”);
}
if ((a>=240) && (a<=254)) {
/*skatāmies, vai ievadītais cipars atbilst vajadzīgajai klasei; ja atbilst, tad izvadām visu nepieciešamo informāciju */
document.write(“C klases adrese. Experimentāla adrese.”);
}
}
//–>
</SCRIPT> /*skripts ir beidzies, tālāk parasts HTML fails*/
</HEAD>
<body>
<font face=”Times New Roman”>
<FORM NAME=”first”>
<CENTER> <B> <BR><BR>
IP adreses īpašību noteikšana: </b> <br>
Ievadiet IP adresi šajos lauciņos: <br>
<INPUT TYPE=”TEXT” NAME=”one” SIZE=3> .&nbsp;
<INPUT TYPE=”TEXT” NAME=”two” SIZE=3> .&nbsp;
<INPUT TYPE=”TEXT” NAME=”three” SIZE=3> .&nbsp;
<INPUT TYPE=”TEXT” NAME=”four” SIZE=3> .&nbsp; <BR> <BR>
<INPUT TYPE=”RESET” VALUE=”&nbsp;&nbsp;Clear All&nbsp;&nbsp;”>&nbsp;&nbsp;
/*poga formas attīrīšanai*/
<INPUT TYPE=”BUTTON” VALUE=”Show results” onClick=”javascript:ShowResults()”>
/*poga, kas izsauc funkciju, kas izskaitļo un parāda rezultātus*/
</CENTER>
</form>
</font>
</BODY>
</HTML>

Fails calculator.html (dala uz apakštīkliem pēc CIDR)
<html>
<head>
<script language=”JavaScript” type=”text/javascript”>
<!–
function Calculate() {
/*visa lielā funkcija, kas satur sevī arī palīgfunkcijas*/
var a; var b; var c; var d; var e; var p; var f; var g; var h; var i; var j; var u; var o; var b1=”; var b2=”; var b3=”; var b4=”; var t; var abc = “a”; var def=”b”; var ghj=”c”; var atb=”d”; var a1 = ”; var a2 = ” ; var a3 = ”; var a4 = ”; var q; var w=”; var p1=”; var p2=”; var p3=”; var e1; var e2; var e3; var e4; var d1=”; var d2=”; var g1,g2,g3,g4=”;
/*definējam mainīgos, turklāt rindām uzreiz piešķiram tukšu vērtību, vai kādu nevajadzīgu nulles elementa vērtību – jo pēc tam tik un tā visa skaitļošana notiek no pirmā, nevis nultā elementa*/
var f1=new Array(8); var f2=new Array(8); var f3=new Array(8);
var f4=new Array(8);var f5=new Array(33);var f6=new Array(33);
var c1,c2,c3,c4; var d2,d3,d4;
a = parseInt(divi.first.value); b = parseInt(divi.second.value); c = parseInt(divi.third.value);d = parseInt(divi.fourth.value); e = parseInt(divi.fifth.value); j = parseInt(divi.sixth.value);
/*pārveidojam lietotāja ievadīto ciparu formā*/
if ((a<1) || (a>254)) { alert(“Pārbaudiet pirmo ievadīto vērtību!”); return; }
if ((b<0) || (b>254)) {
alert(“Pārbaudiet otro ievadīto vērtību!”); return; }
if ((c<0) || (c>254)) {
alert(“Pārbaudiet trešo ievadīto vērtību!”); return; }
if ((d<0) || (d>254)) {
alert(“Pārbaudiet ceturto ievadīto vērtību!”); return; }
function CheckNumber(n){
/*funkcija, kas izskaitļo nepieciešamo bitu skaitu, kurus nepieciešams paņemt, kā arī to, vai lietotājs ir ievadījis pareizu apakštīklu skaitu*/
m=n/2;
if (n%2!==0) { alert(“Pārbaudiet tīklu skaitu! Izvadītais rezultāts būs nepareizs!”); return; }
for (t=1; m!=1; t++) {
m=m/2; }
return t; }
CheckNumber(j); /*izsaucam funkciju un pārbaudām ievadīto vērtību*/
f = (a).toString(2); g = (b).toString(2);
h = (c).toString(2); i = (d).toString(2);
/*pārveidojam skaitļus binārās teksta virknēs un apvienojam vienā teksta rindā u */
u = f+g+h+i;
if((j==0) || (j==1)) {
/*ja lietotājs nav ievadījis apakštīklu skaitu, tad tiek palaista šī skripta daļa: */
o = Math.pow(2,(32-e));
/*izskaitļojam iespējamo hostu daudzumu */
document.write(“<br> Pieejamo adrešu skaits: “); document.write(o);
document.write(“<br> Subnet maska: “);
for (p=1; p<=e; p++){ abc = abc + 1; }
/*izskaitļojam un izvadam subnet masku */
for (p=e+1; p<=32; p++) {abc = abc + 0; }
/*sadalām 32 bitu teksta rindu četrās daļās pa 8 biti */
for (p=1; p<=8; p++) { a1 = a1 + abc.charAt(p); }
for (p=9; p<=16; p++) { a2 = a2 + abc.charAt(p); }
for (p=17; p<=24; p++) { a3 = a3 + abc.charAt(p); }
for (p=25; p<=32; p++) { a4 = a4 + abc.charAt(p); }
document.write(a1); document.write(a2);
document.write(a3); document.write(a4+”<BR>”);
/*pārveidojam šīs jaunās 8 bitu teksta rindas decimālos skaitļos, izsaucot funkciju BinaryToDecimal, kas atrodas skripta beigās */
b1=BinaryToDecimal(a1); b2=BinaryToDecimal(a2);
b3=BinaryToDecimal(a3); b4=BinaryToDecimal(a4);
document.write(b1+”.”+b2+”.”+b3+”.”+b4); }
/* ja lietotājs vēlas dalīt apakštīklos, palaižam sekojošo daļu: */
document.write(“<TABLE BORDER=5><TH><B>Nr.</TH><TH>Apakštīkla adrese</TH><TH>Mezglu adreses no: </TH><TH>Mezglu adreses līdz: </TH><TH>Broadcast adrese</TH><TH>Tīkla maska</TH>”);
/*veidojam tabulas sākumu ar virsrakstiem*/
for (p=1; p<=e; p++)
{
ghj = ghj + 1;
} /*aizpildām to daļu, ko neaiztiekam un nemainām jebkurā gadījumā */
for (o=0; o!=j; o++) {
/*tagad skaitļosim apakštīklu adreses un atkarībā no tiem vēl arī subnet, mezglu adreses */
document.write(“<TR>”); /*sāksim rindiņu*/
document.write(“<TD>”+(o+1)+”.”+”</TD>”);
d1=d2=d3=d4=”; /*iztukšojam mainīgos*/
def=ghj; /*atjaunojam rindu, ko neaiztiekam, tālākā procesā pārveidosim*/
c1=(o).toString(2); /*pārveidojam skaitītāju binārā teksta rindā, ko pieliekam pēc tam klāt tai rindai, ko definējām iepriekš kā neaiztiekamu*/
c2=(c1).length; /*nosakām garumu šim binārajam mainīgajam – ja tas ir mazāks par bitu skaitu, kuri ir jāmaina, tad priekšā pieliekam trūkstošo elementu vietā nulles*/
if ((c2<t)){
c4=t-c2;
for (var y=e+1; y!=(e+c4+1); y++)
{def=def+0; }
def=def+c1;
for (var y=(e+t); y<=32; y++) {
def = def + 0;
} }
else {
/*ja elementa garums sakrīt ar maināmo bitu skaitu, vienkārši pievienojam mainīgo bināro rindas beigās un pieliekam trūkstošās nulles beigās, lai izveidotos 32 bitu rinda*/
def=def+c1;
for (p=e+t; p<=32; p++) { def = def + 0; } }
/*tagad kā iepriekš sadalām četrās daļās pa 8 biti un pārveidojam decimālā sistēmā */
for (p=1; p<=8; p++) { d1 = d1 + def.charAt(p); }
for (p=9; p<=16; p++) { d2 = d2 + def.charAt(p); }
for (p=17; p<=24; p++) { d3 = d3 + def.charAt(p); }
for (p=25; p<=32; p++) { d4 = d4 + def.charAt(p); }
e1=BinaryToDecimal(d1); e2=BinaryToDecimal(d2);
e3=BinaryToDecimal(d3); e4=BinaryToDecimal(d4);
if ((e2==255) && (e3==255)) {
/*ja subnet maska pārklāj pirmos trīs baitus un tie nemainās, tad tālāk operējam tikai ar pēdējiem 8 bitiem*/ document.write(“<TD>”+a+”.”+b+”.”+c+”.”+e4+”/”+(e+t)+”</TD>”); /*Apakštīkla adrese jaunā rindiņā*/
/*tā kā zemāk aprakstītās darbības atkārtoties katru reizi, bet darbības princips tām ir tieši tāds pats (es neveidoju vienu funkciju, kuru varētu izsaukt, jo man likās vienkāršāk katru reizi izskaitļot no jauna), tad aprakstīšu ar komentāriem tikai pirmo daļu*/
w=”;
w=def.substring(25,32); /*atdalām no izveidotās rindas vajadzīgos (dotajā gadījumā pēdējos 8) simbolus*/
w=w+1; /*tā kā visi elementi, izņemot masku, ir nulles, tad vienkārši atdalām par vienu elementu mazāk un pieliekam vieninieku beigās*/
e4=BinaryToDecimal(w);
document.write(“<TD>”+a+”.”+b+”.”+c+”.”+e4+”</TD>”); /*Mezglu adreses sākas no:*/
w=”;
w=def.substring(25,(25+t)); /*atkal atdalām vajadzīgo rindas daļu*/
for (p=t; p<=(8-t); p++) { w=w+1; }
if (w.length<=6) { for(var ty=p-1; ty<6; ty++) { w=w+1; } }
w=w+0;
/*un ieliekam visus vieniniekus, izņemot pēdējo, kur ieliekam nulli*/
e4=BinaryToDecimal(w);
document.write(“<TD>”+a+”.”+b+”.”+c+”.”+e4+”</TD>”); /*Mezglu adreses beidzas ar:*/
w=”;
w=def.substring(25,(25+t)); /*atkal atdalām to pašu*/
for (p=t; p<=(9-t); p++){w=w+1; }
if (w.length<=7) { for(var ty=p; ty<=8; ty++) { w=w+1; } }
/*piešķiram visus vieniniekus, pārbaudām, vai elementu skaits ir pietiekošs, ja nē, piešķiram trūkstošos vieniniekus*/
e4=BinaryToDecimal(w);
document.write(“<TD>”+a+”.”+b+”.”+c+”.”+e4+”</TD>”);/*Broadcast adrese*/
w=”; for (p=1; p<=t; p++) {w=w+1; }
for (p=t+1; p<=8; p++) {w=w+0; }
/*piešķiram nepieciešamos vieniniekus, beigās nulles – lai būtu nepieciešamais skaits elementu*/
e4=BinaryToDecimal(w);
document.write(“<TD>”+e1+”.”+e2+”.”+e3+”.”+e4+”</TD>”);/*Tīkla maska*/ }
if ((e2==255) && (e3!==255)) {
/*ja subnet maska pārklāj tikai pirmo un otro baitu, iedarbojas šī skripta daļa*/
document.write(“<TD>”+a+”.”+b+”.”+e3+”.”+e4+”</TD>”); /*Apakštīkla adrese*/
w=”;w=def.substring(17,32);
p1=w.substring(0,8); p2=w.substring(8,15)
p2=p2+1;
e3=BinaryToDecimal(p1); e4=BinaryToDecimal(p2);
document.write(“<TD>”+a+”.”+b+”.”+e3+”.”+e4+”</TD>”); /*Mezglu adreses sākas no:*/
w=”; w=def.substring(17,(17+t+1));
for (p=t; p<=(16-t); p++){w=w+1; }
if (w.length<=14) { for(var ty=p-1; ty<14; ty++) { w=w+1; } }
p1=w.substring(0,8); p2=w.substring(8,15);
p2=p2+0;
e3=BinaryToDecimal(p1);e4=BinaryToDecimal(p2);
document.write(“<TD>”+a+”.”+b+”.”+e3+”.”+e4+”</TD>”); /*Mezglu adreses beidzas ar:*/
w=”; w=def.substring(17,(17+t));
for (p=t; p<=(17-t); p++){w=w+1; }
if (w.length<=15) { for(var ty=p; ty<=16; ty++) { w=w+1; } }
p1=w.substring(0,8); p2=w.substring(8,16);
e3=BinaryToDecimal(p1);e4=BinaryToDecimal(p2);
document.write(“<TD>”+a+”.”+b+”.”+e3+”.”+e4+”</TD>”);/*Broadcast adrese*/
w=”;
for (p=1; p<=t; p++) {w=w+1; }
for (p=t+1; p<=16; p++) { w=w+0; }
p1=w.substring(0,8); p2=w.substring(8,16);
e3=BinaryToDecimal(p1); e4=BinaryToDecimal(p2);
document.write(“<TD>”+e1+”.”+e2+”.”+e3+”.”+e4+”</TD>”);/*Tīkla maska*/ }
if ((e1==255) && (e2!==255)) {
/* ja subnet maska noklāj tikai pirmo baitu*/ document.write(“<TD>”+a+”.”+e2+”.”+e3+”.”+e4+”</TD>”); /* Apakštīkla adrese*/
w=”; w=def.substring(9,32);
p1=w.substring(0,8); p2=w.substring(8,16);p3=w.substring(16,23);
p3=p3+1;
e2=BinaryToDecimal(p1); e3=BinaryToDecimal(p2); e4=BinaryToDecimal(p3);
document.write(“<TD>”+a+”.”+e2+”.”+e3+”.”+e4+”</TD>”); /*Mezglu adreses sākas no:*/
w=”; w=def.substring(9,(9+t));
for (p=t; p<=(25-t); p++){w=w+1; } w=w+0;
p1=w.substring(0,8); p2=w.substring(8,16);p3=w.substring(16,23);
p3=p3+0; e2=BinaryToDecimal(p1); e3=BinaryToDecimal(p2); e4=BinaryToDecimal(p3); document.write(“<TD>”+a+”.”+e2+”.”+e3+”.”+e4+”</TD>”); /*Mezglu adreses beidzas ar:*/
w=”; w=def.substring(9,(9+t));
for (p=t; p<=(25-t); p++){w=w+1; }
if (w.length<=22) { for(var ty=p-1; ty<22; ty++) { w=w+1; } }
if (w.length<=23) { for(var ty=p; ty<=24; ty++) { w=w+1; } }
p1=w.substring(0,8); p2=w.substring(8,16); p3=w.substring(16,24);
e2=BinaryToDecimal(p1); e3=BinaryToDecimal(p2);e4=BinaryToDecimal(p3);
document.write(“<TD>”+a+”.”+e2+”.”+e3+”.”+e4+”</TD>”);/*Broadcast adrese*/
w=”;
for (p=1; p<=t; p++) {w=w+1; }
for (p=t+1; p<=24; p++) { w=w+0; } p1=w.substring(0,8); p2=w.substring(8,16); p3=w.substring(16,24);
e2=BinaryToDecimal(p1); e3=BinaryToDecimal(p2); e4=BinaryToDecimal(p3); document.write(“<TD>”+e1+”.”+e2+”.”+e3+”.”+e4+”</TD>”);/*Tīkla maska*/ }
if (e1!==255){ document.write(“<TD>”+e1+”.”+e2+”.”+e3+”.”+e4+”</TD>”);
/* Apakštīkla adrese*/
w=”; w=def.substring(1,(e+t+1));
for (p=e+t; p<=31; p++) { w=w+0; } w=w+1; g1=g2=g3=g4=”;
for (p=1; p<=8; p++) { g1 = g1 + w.charAt(p); }
for (p=9; p<=16; p++) { g2 = g2 + w.charAt(p); }
for (p=17; p<=24; p++) { g3 = g3 + w.charAt(p); }
for (p=25; p<=32; p++) { g4 = g4 + w.charAt(p); }
e1=BinaryToDecimal(g1); e2=BinaryToDecimal(g2);
e3=BinaryToDecimal(g3); e4=BinaryToDecimal(g4);
document.write(“<TD>”+e1+”.”+e2+”.”+e3+”.”+e4+”</TD>”);/*Mezglu adreses sākas no:*/
w=”; w=def.substring(1,(e+t+1));
for (p=e+t; p<=31; p++) { w=w+1;} w=w+0; g1=g2=g3=g4=”;
for (p=1; p<=8; p++) { g1 = g1 + w.charAt(p); }
for (p=9; p<=16; p++) { g2 = g2 + w.charAt(p); }
for (p=17; p<=24; p++) { g3 = g3 + w.charAt(p); }
for (p=25; p<=32; p++) { g4 = g4 + w.charAt(p); }
e1=BinaryToDecimal(g1); e2=BinaryToDecimal(g2);
e3=BinaryToDecimal(g3); e4=BinaryToDecimal(g4);
document.write(“<TD>”+e1+”.”+e2+”.”+e3+”.”+e4+”</TD>”); /*Mezglu adreses beidzas ar:*/
w=”; w=def.substring(1,(e+t+1));
for (p=e+t; p<=32; p++) { w=w+1;} g1=g2=g3=g4=”;
for (p=1; p<=8; p++) { g1 = g1 + w.charAt(p); }
for (p=9; p<=16; p++) { g2 = g2 + w.charAt(p); }
for (p=17; p<=24; p++) { g3 = g3 + w.charAt(p); }
for (p=25; p<=32; p++) { g4 = g4 + w.charAt(p); }
e1=BinaryToDecimal(g1); e2=BinaryToDecimal(g2);
e3=BinaryToDecimal(g3); e4=BinaryToDecimal(g4); document.write(“<TD>”+e1+”.”+e2+”.”+e3+”.”+e4+”</TD>”);/*Broadcast adrese*/
w=”; for (p=1; p<=e+t+1; p++) {w=w+1; } g1=g2=g3=g4=”;
for (p=e+t; p<=32; p++) { w=w+0; }
for (p=1; p<=8; p++) { g1 = g1 + w.charAt(p); }
for (p=9; p<=16; p++) { g2 = g2 + w.charAt(p); }
for (p=17; p<=24; p++) { g3 = g3 + w.charAt(p); }
for (p=25; p<=32; p++) { g4 = g4 + w.charAt(p); }
e1=BinaryToDecimal(g1); e2=BinaryToDecimal(g2);
e3=BinaryToDecimal(g3); e4=BinaryToDecimal(g4); document.write(“<TD>”+e1+”.”+e2+”.”+e3+”.”+e4+”</TD>”); /*Tīkla maska*/ } document.write(“</TR>”); /*rindiņas beigas*/
}
document.write(“</TABLE>”); /*tabulas beigas*/
function BinaryToDecimal(x) {
/*funkcija, kas pārveido no binārās sistēmas uz decimālo*/
var num1;
var num2;
var currnum;
currnum = 128;
num1 = x;
num2 = eval(num1.charAt(0)) * currnum;
for (i = 1; i <= 7; i++){
currnum = currnum / 2;
num2 = num2 + (eval(num1.charAt(i)) * currnum);}
return num2; }
}
//–>
</script> /*beidzam skriptu un sākam parasto HTML failu*/
</head>
<body> <b>
<font face=”Times New Roman”>
<center> <br><br>
Dalīšana uz apakštīkliem pēc CIDR: <br></b>
Ievadiet adresi šajos lauciņos: <br></center>
<center>
<form name=”divi”>
<input name=”first” size=”3″ > .&nbsp;
<input name=”second” size=”3″ > .&nbsp;
<input name=”third” size=”3″ > .&nbsp;
<input name=”fourth” size=”3″ > .&nbsp; /
<input name=”fifth” size=”3″ > <br> <br>
Uz cik apakštīkliem dalīsim? <br>
(Atstājiet šajā lauciņā nulli,ja vēlaties uzzināt tikai informāciju par patreizējo adresi) <br>
<input name=”sixth” size=2 value=0> <br><br>
<input type=”reset” value=”&nbsp;&nbsp;Clear All&nbsp;&nbsp;”> &nbsp;&nbsp;
/*poga formas attīrīšanai*/
<input type=”button” value=” &nbsp;Calculate &nbsp;” onClick=”javascript:Calculate()”>
/*poga, kas izsauc funkciju, kas izskaitļo un uzrāda adreses un apakštīklus*/
</form></center>
</font>
</body>
</html>

Fails logo.html
<html>
<head></head>
<body>
<center>
<img src=”Sandra1.png”>
<font face=”Verdana” size=3><b>Sandra Lobazova, Inženieri programmētāji 2.kurss</b></font>
<img src=”Sandra1.png”>
</center>
</body>
</html>

Kontrolpiemērs:
Lietotājs ievada šādus datus IP informācijas izskaitļošanas daļā: 123.0.45.16. un programma izdod rezultātu:

Tīkla adrese Klase Tīkla maska Broadcast adrese
123.0.0.0 A klases adrese
(126 tīkli ar 16777214 iespējamiem mezgliem katrā) 255.0.0.0 123.255.255.255

Lietotājs ievada šādus datus CIDR apakštīklu informācijas izskaitļošanas daļā: 123.0.45.16.24 ;dalīt uz 4 apakštīkliem – un programma izdod rezultātu:

Nr. Apakštīkla adrese Mezglu adreses no: Mezglu adreses līdz: Broadcast adrese Tīkla maska
1. 123.0.45.0/26 123.0.45.1 123.0.45.62 123.0.45.63 255.255.255.192
2. 123.0.45.64/26 123.0.45.65 123.0.45.126 123.0.45.127 255.255.255.192
3. 123.0.45.128/26 123.0.45.129 123.0.45.190 123.0.45.191 255.255.255.192
4. 123.0.45.192/26 123.0.45.193 123.0.45.254 123.0.45.255 255.255.255.192

Lietotāja instrukcija
Veiciet faila atarhivēšanu: nospiediet ar labo peles taustiņu uz arhivētā faila un izvēlieties Extract Here. Pēc tad atveriet parādījušos mapi un veiciet dubultklikšķi uz faila index.html. Logā, kas atvērsies Internet Explorer, jūs ieraudzīsiet trīs sadaļas: augšējā ir informācija par autoru; nodaļa kreisajā pusē veic informācijas par IP adresēm izvadīšanu, turpretim labā sadaļa veic dalīšanu uz apakštīkliem pēc CIDR un izvadi par patreizējo tīklu, ja lietotājs tā vēlas.
Ja jūs vēlaties uzzināt informāciju par IP adresi, ievadiet to kreisās sadaļas lodziņos. Ja tiks ievadīta nepareiza informācija, programma jūs par to brīdinās. Programmas rezultāti tiks parādīti tajā pašā kreisajā pusē.
Ja jūs vēlaties veikt tīklu dalīšanu pēc CIDR metodes, ievadiet loga labajā pusē esošajos lodziņos tīkla adresi un prefiksa bitu skaitu. Zemāk esošajā lodziņā norādiet apakštīklu skaitu, uz kuriem vēlaties veikt dalīšanu. Programma brīdinās jūs, ja esat kļūdaini ievadījis informāciju. Izskaitļojumu rezultāti atvērsies tajā pašā labajā pusē.Ja jūs vēlaties tikai uzzināt informāciju par patreizējo tīklu, tad zemāk esošajā lodziņā (kurā jānorāda apakštīklu skaits) atstājiet nulli.