:
:
Aizmirsu paroli  
 
 
 

Apraksts:

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.

Darbs:

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


[1]  2  Tālāk