Toto je vyrovnávacia pamäť Google pre http://wiki.cnl.tuke.sk/QoSProjekt/SortSystem. Je to snímka stránky, ako sa zobrazila dňa 17. mar. 2009 23:02:28 GMT. Aktuálna stránka sa odvtedy mohla zmeniť. Viac informácií

Len textová verzia
 
SortSystem < QoSProjekt < TWiki
r5 - 01 Jun 2008 - 17:46:04 - IvanaKsenicovaYou are here: TWiki >  QoSProjekt Web  >  LanMonitorTri > ImpleMentacia3 > SortPrirucka > SortSystem

Funkcia programu


Úlohou programu je načítať údaje z výstupných súborov generovaných hlavným programom, zotriediť dáta podľa pokynov používateľa a po zotriedení vygenerovať výstupné HTML stránky. Pre lepšiu orientáciu na stránkach sú IP res. MAC adresy nachádzajúce sa danom čase v ARP tabuľke zobrazené inou farbou ako adresy, ktoré sa v danom čase nepoužívajú.

Analýza programu


Program načíta údaje z výstupného súboru arp_vystup.txt do štruktúry sort_ip_struct a zo súboru arp_vystup_mac.txt do štruktúry sort_mac_struct. Výstupné súbory sú generované hlavným programom. Po načítaní sa dáta zotriedia podľa pokynov používateľa a vygenerujú sa výstupné HTML stránky.

Popis programu

Popis riešenia


Hlavný program generuje dve HTML stránky. Na jednej stránke je tabuľka s IP adresami, rozhraniami, MAC adresami a časmi (jendej IP adrese môže prislúchať viacero MAC adries a tým aj časov). Po kliknutí na odkaz nad niektorým zo stĺpcov sa vykoná CGI skript. Tento spustí program na triedenie s príslušnými parametrami. Program sort načíta potrebné údaje z výstupného textového súboru arp_vystup.txt generovaného hlavným programom do štruktúry sort_ip_struct. Vykoná sa triedenie a vygeneruje sa HTML stránka so zotriedenými údajmi. Po jednom kliknutí na odkaz sa vykoná vzostupné triedenie a po opätovnom kliknutí na ten istý odkaz sa vykoná zostupné triedenie. Na druhej stránke je tabuľka s MAC adresami, rozhraniami, IP adresami a časmi (jendej MAC adrese môže prislúchať viacero IP adries a tým aj časov). Po kliknutí na odkaz nad niektorým zo stĺpcov sa vykoná CGI skript. Tento spustí program na triedenie s príslušnými parametrami. Program sort načíta potrebné údaje z výstupného textového súboru arp_vystup_mac.txt generovaného hlavným programom do štruktúry sort_mac_struct. Vykoná sa triedenie a vygeneruje sa HTML stránka so zotriedenými údajmi. Po jednom kliknutí na odkaz sa vykoná vzostupné triedenie a po opätovnom kliknutí na ten istý odkaz sa vykoná zostupné triedenie.

Popis údajových štruktúr, globálnych premenných

Štruktúry:
Do tejto štruktúry sa načítavajú potrebné údaje z výstupneho súboru arp_vystup.txt generovaného programom arpmonitor. Pozostáva z poľa, do ktorého sa ukladá rozhranie, dvojrozmerného poľa na ukladanie MAC adries prislúchajúcich jednej IP adrese a premenných, do ktorých sa ukladajú časy a IP adresa.
typedef struct{
  int Ipa, Ipb, Ipc, Ipd;
  char Inf[d_inf];
  char Mac[p_mac][d_mac];
  int mac_pocet;
  int Rok_cas1[p_mac][1], Mesiac_cas1[p_mac][1], Den_cas1[p_mac][1], Hodina_cas1[p_mac][1], Minuta_cas1[p_mac][1], Sekunda_cas1[p_mac][1];
  int cas1_pocet;
  int Rok_cas2[p_mac][1], Mesiac_cas2[p_mac][1], Den_cas2[p_mac][1], Hodina_cas2[p_mac][1], Minuta_cas2[p_mac][1], Sekunda_cas2[p_mac][1];
  int cas2_pocet;
  } sort_ip_struct;
Do tejto štruktúry sa načítavajú potrebné údaje z výstupneho súboru arp_vystup_mac.txt generovaného programom arpmonitor. Pozostáva z poľa, do ktorého sa ukladá rozhranie, dvojrozmerného poľa na ukladanie IP adries prislúchajúcich jednej MAC adrese a premenných, do ktorých sa ukladajú časy a MAC adresa.
typedef struct{
  char IP[p_ips][d_ip];
  char INF[d_inf];
  char MAC[d_mac];
  int ip_pocet;
  int Rok_cas11[p_mac][1], Mesiac_cas11[p_mac][1], Den_cas11[p_mac][1], Hodina_cas11[p_mac][1], Minuta_cas11[p_mac][1], Sekunda_cas11[p_mac][1];
  int cas1_count;
  int Rok_cas22[p_mac][1], Mesiac_cas22[p_mac][1], Den_cas22[p_mac][1], Hodina_cas22[p_mac][1], Minuta_cas22[p_mac][1], Sekunda_cas22[p_mac][1];
  int cas2_count;
  } sort_mac_struct;
Pole štruktúr popisujúce platné dlhé prepínače.
const struct option long_options[] = {
    { "ip",		0, NULL, 'i' },
    { "inf",		0, NULL, 'f' },
    { "mac",    	0, NULL, 'm' },
    { "cas1",		0, NULL, 'c' },
    { "cas2",		0, NULL, 't' },
    { "cas11",		0, NULL, 'd' },
    { "cas22",		0, NULL, 'e' }, 
    { "vzostupne",	0, NULL, 'v' }, 
    { "zostupne",	0, NULL, 'z' }, 
    { "arp_vystup.txt",	0, NULL, 'a' },
    { "arp_vystup_mac.txt",	0, NULL, 'b' },
    { NULL,		0, NULL, 0 }		
  };
Globálne premenné:
Polia typu štruktúra:
sort_mac_struct mac[p_ip], macs[1];
sort_ip_struct ip[p_ip], ips[1];

Počty načítaných MAC resp. IP adries sú uložené v premenných:
int pocet_mac;
int pocet_ip;

Identifikácia vstupných súborov:
FILE *in, *vstup;
Identifikácia výstupných súborov:
FILE *out, *vystup;

Premenné, do ktorých sa načítavajú časy výstupných textových súborov vygenerovaných programom arpmonitor:
int den, mesiac, rok, hodina, minuta, sekunda;
int dn, m, rk, hod, min, sek;

Popis funkcií

Hlavná funkcia programu:
main(int argc, char *argv[])

Funkcia, ktorá skopíruje obsah súboru html.txt do výstupného súboru triedeny_ip_vystup.html:
void html()

Funkcia, ktorá skopíruje obsah súboru html2.txt do výstupného súboru triedeny_mac_vystup.html:
void htm2l()

Funkcia na načítanie IP adries, MAC adries, rozhraní a časov z výstupného súboru arp_vystup.txt:
void NacitanieIpStruktura()

Funkcia na načítanie MAC adries, IP adries, rozhraní a časov z výstupného súboru arp_vystup_mac.txt:
void NacitanieMacStruktura()

Funkcia na triedenie podľa IP adries. Argument určuje, či sa má vykonať vzostupné alebo zostupné triedenie.
void sort_ip(int d)

Funkcia na triedenie podľa času, kedy bola IP adresa prvýkrát zaznamenaná v ARP tabuľke od spustenia programu. Triedia sa časy prislúchajúce jednej IP adrese. Argument určuje, či sa má vykonať vzostupné alebo zostupné triedenie.
void sort_inter_cas1(int d)

Funkcia na triedenie podľa času, kedy bola IP adresa prvýkrát zaznamenaná v ARP tabuľke od spustenia programu. Argument určuje, či sa má vykonať vzostupné alebo zostupné triedenie.
void sort_cas1(int d)

Funkcia na triedenie podľa času, kedy bola IP adresa poslednýkrát zaznamenaná v ARP tabuľke od spustenia programu. Triedia sa časy prislúchajúce jednej IP adrese. Argument určuje, či sa má vykonať vzostupné alebo zostupné triedenie.
void sort_inter_cas2(int d)

Funkcia na triedenie podľa času, kedy bola IP adresa poslednýkrát zaznamenaná v ARP tabuľke od spustenia programu. Argument určuje, či sa má vykonať vzostupné alebo zostupné triedenie.
void sort_cas2(int d)

Funkcia na triedenie podľa MAC adries. Argument určuje, či sa má vykonať vzostupné alebo zostupné triedenie.
void sort_mac(int d)

Funkcia na triedenie podľa rozhraní. Argument určuje, či sa má vykonať vzostupné alebo zostupné triedenie.
void sort_inf(int d)

Funkcia na triedenie podľa času, kedy bola MAC adresa prvýkrát zaznamenaná v ARP tabuľke od spustenia programu. Triedia sa časy prislúchajúce jednej MAC adrese. Argument určuje, či sa má vykonať vzostupné alebo zostupné triedenie.
void sort_inter_cas11(int d)

Funkcia na triedenie podľa času, kedy bola MAC adresa prvýkrát zaznamenaná v ARP tabuľke od spustenia programu. Argument určuje, či sa má vykonať vzostupné alebo zostupné triedenie.
void sort_cas11(int d)

Funkcia na triedenie podľa času, kedy bola MAC adresa poslednýkrát zaznamenaná v ARP tabuľke od spustenia programu. Triedia sa časy prislúchajúce jednej MAC adrese. Argument určuje, či sa má vykonať vzostupné alebo zostupné triedenie.
void sort_inter_cas22(int d)

Funkcia na triedenie podľa času, kedy bola MAC adresa poslednýkrát zaznamenaná v ARP tabuľke od spustenia programu. Argument určuje, či sa má vykonať vzostupné alebo zostupné triedenie.
void sort_cas22(int d)

Funkcia na výpis IP adries do výstupného HTML súboru triedeny_ip_vystup.html. Argument slúži na určenie poradia IP adresy v štruktúre.
void IpIpHtml(int w)

Funkcia na výpis rozhraní do výstupného HTML súboru triedeny_ip_vystup.html. Argument slúži na určenie poradia rozhrania v štruktúre.
void InfIpHtml(int w)

Funkcia na výpis MAC adries do výstupného HTML súboru triedeny_ip_vystup.html. Argumenty slúžia na určenie poradia MAC adresy pre jednu IP adresu a pre určenie poradia MAC adresy v štruktúre.
void MacIpHtml(int w, int t)

Funkcia na výpis času prvého záznamu IP adresy v ARP tabuľke do výstupného HTML súboru triedeny_ip_vystup.html. Argumenty slúžia na určenie poradia času pre jednu IP adresu a pre určenie poradia času v štruktúre.
void Cas1IpHtml(int w, int t)

Funkcia na výpis času posledného záznamu IP adresy v ARP tabuľke do výstupného HTML súboru triedeny_ip_vystup.html. Argumenty slúžia na určenie poradia času pre jednu IP adresu a pre určenie poradia času v štruktúre.
void Cas2IpHtml(int w, int t)

Funkcia na výpis IP adries do výstupného HTML súboru triedeny_mac_vystup.html. Argumenty slúžia na určenie poradia IP adresy pre jednu MAC adresu a pre určenie poradia IP adresy v štruktúre.
void IpMacHtml(int w, int t)

Funkcia na výpis rozhraní do výstupného HTML súboru triedeny_mac_vystup.html. Argument slúži na určenie poradia rozhrania v štruktúre.
void InfMacHtml(int w)

Funkcia na výpis MAC adries do výstupného HTML súboru triedeny_mac_vystup.html. Argument slúži na určenie poradia MAC adresy v štruktúre.
void MacMacHtml(int w)

Funkcia na výpis času prvého záznamu MAC adresy v ARP tabuľke do výstupného HTML súboru triedeny_mac_vystup.html. Argumenty slúžia na určenie poradia času pre jednu MAC adresu a pre určenie poradia času v štruktúre.
void Cas1MacHtml(int w, int t)

Funkcia na výpis času posledného záznamu MAC adresy v ARP tabuľke do výstupného HTML súboru triedeny_mac_vystup.html. Argumenty slúžia na určenie poradia času pre jednu MAC adresu a pre určenie poradia času v štruktúre.
void Cas2MacHtml(int w, int t)

Funkcia na výpis legendy do HTML súboru triedeny_ip_vystup.html
void LegendaIp()

Funkcia na výpis legendy do HTML súboru triedeny_mac_vystup.html
void LegendaMac()

Funkcia na výpis IP, MAC adries, časov a rozhraní do výstupného HTML súboru triedeny_ip_vystup.html. Jeden argument určuje, či sa má vykonať vzostupné alebo zostupné triedenie a druhý určuje, ktorý CGI skrip sa má vypísať.
void VypisIpHtml(int d, int parameter)

Funkcia na výpis IP, MAC adries, časov a rozhraní do výstupného HTML súboru triedeny_mac_vystup.html. Jeden argument určuje, či sa má vykonať vzostupné alebo zostupné triedenie a druhý určuje, ktorý CGI skrip sa má vypísať.
void VypisMacHtml(int d, int parameter)

Hierarchia funkcií

Sort_funkcie.jpg

Diagram objektov

sort_diagram.jpg

Popis vstupných a výstupných súborov

Zoznam zdrojových textov

Zdrojový kód programu:
sort.c

Externý CSS súbor:
styly.csc

Pomocné súbory:
html.txt
html2.txt

Vstupné súbory (generované hlavným súborom):
arp_vystup.txt
arp_vystup_mac.txt

CGI programy:
ip_vzostupne.cgi
ip_zostupne.cgi
inf_vzostupne.cgi
inf_zostupne.cgi
mac_vzostupne.cgi
mac_zostupne.cgi
cas1_vzostupne.cgi
cas1_zostupe.cgi
cas2_vzostupne.cgi
cas2_zostupne.cgi
cas11_vzostupne.cgi
cas11_zostupe.cgi
cas22_vzostupne.cgi
cas22_zostupne.cgi
-- IvanaKsenicova - 29 May 2008

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r5 < r4 < r3 < r2 < r1 | More topic actions
 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback