<>We gebruiken de standaard input om na te gaan of er een fout opgetreden was de laatste keer dat het script werd uitgevoerd. Als dat zo is, worden er maatregelen genomen: zo zal de titel duidelijk aangeven dat er een fout is en de achtergrond geheel rood kleuren zodat dit opvalt. >
<>>
<>Vervolgens gaan we 3 lijsten maken (voor ieder type test één lijst) van servers en services. Via een ingenieus systeem maken we dat het in de vorm van een array opgenomen wordt waarbij quotes ervoor zorgen dat lijnen onderscheiden worden en spaties zorgen voor het indelen in kolommen. Het aantal kolommen wordt bepaald in de functie die de checks uitvoert per lijn.
>
<>Nadien worden in de broncode de 3 functies getoond die ieder onderdeel afzonderlijk testen. >
<>>
Deze functie is bedoeld om een service op een bepaalde poort te testen. Daarvoor zijn 4 zaken nodig (voor zowel het testen als het resultaat afdrukken). We hebben het IP-adres nodig, de poort waarop de server draait, een pagina met meer uitleg en de volledige naam of eigenaar van de server. Deze laatste mag spaties bevatten want alles wat na de 3de kolom komt hoort automatisch bij kolom 4.
Het testen wordt gedaan door middel van netcat door middel van Het volgende commando:
nc -z -w 1 <ip-nummer> <poort>
Deze functie test of het netwerk wel degelijk werkt tot aan de server. Het stuurt een ICMP2.17 -pakketje richting server en wacht één seconde op antwoord. Als het script niet binnen die seconde een antwoord krijgt moet er iets fout zijn.
Het testen wordt gedaan met het ping-programma dat op iedere computer die aan een netwerk verbonden is, staat. Het volgende commando doet wat we wensen:
ping -c 1 -i 1 <ip-nummer>
Om te testen is dus enkel het IP-adres nodig, om het resultaat weer te geven gebruiken we zowel een pagina met meer uitleg als de naam of eigenaar van de server. Voor een beschrijving van het ping-commando kan u terecht in bijlage B.25 op bladzijde .
Deze laatste functie checkt of de inhoud van de pagina in orde is. Deze pagina is dynamisch opgebouwd met informatie uit een database. Op die manier wordt dus eigenlijk de database onrechtstreeks getest. De uiteindelijke url wordt opgebouwd uit het IP-adres en de locatie van de pagina.
<>Deze functies drukken ook meteen het resultaat af in HTML .
>
<>Vervolgens bouwen we de webpagina op door middel van CSS2.18 , die ervoor zorgt dat het veranderen van de layout simpel en efficiënt gebeurt, en drukken we het resultaat af van de 3 testen die elk zijn lijst verwerkt.
>
<>We merken nog op dat als er eender waar een fout gebeurt, we dat bijhouden in een globale variabele. Als deze variabele een waarde van 1 heeft als het script eindigt, dan gaat de tussentijd van het herladen maar 15 seconden bedragen. Op die manier zorgen we ervoor dat van zodra er een fout is hij sneller opnieuw nakijkt of het al opgelost is. Als er geen fout is wacht hij 40 seconden alvorens opnieuw te testen.
>
<>Indien er een fout is geven we een string ``error'' mee (zie figuur 2.3 op bladzijde ) aan de URL2.19 van de pagina, zodat die de volgende keer de achtergrond en de titel wijzigt zoals reeds besproken.
>
<>In figuur 2.1 op bladzijde zie je het resultaat als er geen fouten zijn. De pagina is vrij neutraal en als men de links volgt, krijgt men meer uitleg over een welbepaalde server, zoals verantwoordelijken, e-mail adressen en telefoonnummers.
>
<>Figuur 2.2 op bladzijde toont het scherm als de eerste fouten worden opgemerkt. Lang zal dit scherm niet zichtbaar blijven want na 15 seconden wordt er over gegaan naar figuur 2.3 op bladzijde
waar duidelijk de rode achtergrond aantoont dat er een probleem is. Ook deze pagina blijft rood totdat alle problemen opgelost zijn, dus een tijdelijk storing zal meteen ook weer verdwijnen.
>