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

Len textová verzia
 
SystemPrirucka2 < QoSProjekt < TWiki
r9 - 04 Feb 2008 - 16:19:53 - IvanaKsenicovaYou are here: TWiki >  QoSProjekt Web  >  LanMonitorDva > ImpleMentacia2 > SystemPrirucka2

Funkcia programu


Funkciou programu je monitorovať zmeny v ARP tabuľke v malých LAN sieťach, t.j. v sieťach s jedným smerovačom (router). ARP tabuľka sa načítava každých 20 sekúnd. Obsah vstupného súboru sa získava prostredníctvom príkazu arp -n. Obsah vstupného súboru sa spracuje a potrebné údaje sa zapisujú do výstupného súboru a zároveň sa generuje HTML stránka.

Analýza programu


Program prostredníctvom príkazu arp -n získava obsah ARP tabuľky. Prostredníctvom funkcie system() a príkazu grep (system("arp -n | grep ether > arp_vstup.txt")) sa z ARP tabuľky získajú len korektné riadky a presmerujú sa do vstupného súboru arp_vstup.txt. Dáta zo vstupného súboru sú načítavané do štruktúry. V prípade, že výstupný súbor arp_vystup.txt neexistuje, vytvorí sa a zapíšu sa doň údaje zo štruktúry arp_struct. Táto je odrazom ARP tabuľky. Ak výstupný súbor existuje, vypíšu sa doň údaje zo štruktúry arpmon_struct a arpmonitor_struct. Ide o údaje z výstupného súboru doplnené o údaje z ARP tabuľky. Takto sa generuje aj výstupný súbor arp_vystup.html. Tento proces sa opakuje každých 20 sekúnd.

Popis programu

Popis riešenia

Program prostredníctvom príkazu arp -n získava obsah ARP tabuľky. Z ARP tabuľky sa získavajú len korektné riadky pre ďalšie spracovanie sú presmerované do vstupného súboru arp_vstup.txt. Do štruktúry sa z tohto súboru načítavajú IP adesy, k nim prislúchajúce MAC adresy a rozhrania (interfaces). Ak výstupné súbory ešte neboli vytvorené, vytvoria sa a zapíše sa do nich obsah zo štruktúry. Výstupné súbory sa dopĺňajú o nové údaje z ARP tabuľky. Vo výstupnom textovom súbore sú v riadkoch vypísané IP adresy, k nim prislúchajúce rozhrania a MAC adresy. S takýmto obsahom sa generuje aj html stránka. Údaje sú však zapísané do tabuľky. Získavanie obsahu ARP tabuľky, jeho následné spracovanie a výpis do súborov sa opakuje každých 20 sekúnd.

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

Štruktúry:
Zo vstupného súboru sú do tejto štruktúry načítavané potrebné informácie. Štruktúra pozostáva z troch polí, do ktorých sa ukladajú IP a MAC adresy a rozhrania.
 typedef struct{
  char IP[d_ip];   
  char interface[d_inf];  
  char MAC[ d_mac]; 
  } arp_struct;
Do štruktúry sa načítavajú informácie z výstupného súboru. Pozostáva z dvoch jednorozmerných polí na ukladanie IP adries a rozhraní, dvojrozmerného poľa umožňujúceho uložiť viacero MAC adries pre jednu IP adresu a premennej, do ktorej sa ukladá počet MAC adries pre jednu IP adresu.
  typedef struct{
  char IPadd[d_ip]; 
  char rozhranie[d_inf]; 
  char MACadd[pocet_mac][d_mac]; 
  int mac_count; 
  } arpmon_struct;
Funkcia porovnanie() porovnáva obsahy predchádzajúcich štruktúr. Údaje, ktoré sú v štruktúre arp_struct, ale ešte sa nenachádzajú v štruktúre arpmon_struct sa zapisujú do nasledujúcej štruktúry. Je zložená z troch polí na ukladanie IP a MAC adries a rozhraní.
typedef struct{
  char IPadresa[d_ip]; 
  char interf[d_inf]; 
  char MACadresa[d_mac]; 
  } arpmonitor_struct;
Globálne premenné:
arp_struct arp[pocet_poloziek];
arpmon_struct arpmon[pocet_poloziek];
arpmonitor_struct arpmon[pocet_poloziek];
int arp_count=0;
int arpmon_count=0;
int arpmonitor_count=0;

Identifikácia vstupného súboru:
FILE *fin;
Identifikácia výstupného textového súboru:
FILE *fout;
Identifikácia výstupného html súboru:
FILE *fhtml;
Identifikácia pomocného súboru:
FILE *f_html;

Popis funkcií

Hlavná funkcia programu:
int main()

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

Funkcia na výpis IP adries zo štruktúry arp_struct do výstupného textového súboru. Argument slúži na určenie poradia IP adresy v štruktúre:
void ipcka(int w)

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

Funkcia na výpis IP adries zo štruktúry arpmon_struct do výstupného textového súboru. Argument slúži na určenie poradia IP adresy v štruktúre:
void ipcka_1(int w)

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

Funkcia na výpis IP adries zo štruktúry arpmonitor_struct do výstupného textového súboru. Argument slúži na určenie poradia IP adresy v štruktúre:
void ipcka_11(int w)

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

Funkcia na výpis MAC adries zo štruktúry arp_struct do výstupného textového súboru. Argument slúži na určenie poradia MAC adresy v štruktúre:
void macadr(int w)

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

Funkcia na výpis MAC adries zo štruktúry arpmon_struct do výstupného textového súboru. Argumenty slúžia na určenie poradia MAC adresy pre jednu IP adresu a pre určenie poradia MAC adresy v štruktúre:
void macadr_1(int w, int t)

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

Funkcia na výpis MAC adries zo štruktúry arpmonitor_struct do výstupnéhodo textového súboru. Argument slúži na určenie poradia MAC adresy v štruktúre:
void macadr_11(int w)

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

Funkcia na výpis rozhraní zo štruktúry arp_struct do výstupného textového súboru. Argument slúži na určenie poradia rozhrania v štruktúre:
void inf(int w)

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

Funkcia na výpis rozhraní zo štruktúry arpmon_struct do výstupného textového súboru. Argument slúži na určenie poradia rozhrania v štruktúre:
void inf_1(int w)

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

Funkcia na výpis rozhraní zo štruktúry arpmonitor_struct do výstupného textového súboru. Argument slúži na určenie poradia rozhrania v štruktúre:
void inf_11(int w)

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

Funkcia na načítanie IP adries, MAC adries a rozhraní zo vstupného súboru:
void read_struct()

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

Funkcia na porovnanie obsahov štruktúr:
porovnanie()

Funkcia na výpis IP, MAC adries a rozhraní do výstupného textového súboru:
void vypis_do_txt()

Funkcia na výpis IP, MAC adries a rozhraní do výstupného html súboru:
void vypis_do_html()

Hierarchia funkcií

funkcie.JPG
funkcie.JPG

Diagram objektov

diagram_objektov.jpg

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

arp_vstup.txt
Do tohto súboru je presmerovaný obsah ARP tabuľky. Údaje z tohoto vstupného súboru sú ďalej spracovávané. Obsah súboru môže vyzerať následovne:
147.232.178.133 ether 00:18:F3:A1:43:AA C eth0
147.232.178.52 ether 00:02:44:04:25:A5 C eth0
147.232.178.194 ether 00:18:F3:B6:5A:1F C eth0

arp_vystup.txt
Do tohto súboru sa vypisujú IP adresy k nim prislúchajúce MAC adresy a rozhrania.
Napr.:
198.163.10.5 eth0 00:15:AB:2E:A5:14
148.156.20.9 eth0 00:51:AC:2E:AC:17 22:33:44:55:66:77

arp_vystup.html
Do tohto súboru sa vypisujú IP adresy k nim prislúchajúce MAC adresy a rozhrania. Údaje sú vypísané do tabuľky.
Napr.:

192.168.1.17	ra0	00:14:BF:D2:7A:C9
192.168.0.2	eth0	00:14:BF:EB:90:FD

Preklad programu

Zoznam zdrojových textov

Zdrojový kód programu:
arpmon.c

Externý CSS súbor:
styly.csc

Pomocný súbor:
html.txt

Vlastný preklad

Pod systémom UNIX je na preklad zdrojových textov možné použiť gcc prekladač. Zdrojový text programu je teda možné prekompilovať :

cc -o arpmon arpmon.c výsledkom je spustiteľný modul arpmon

Po skompilovaní programu sa program spúšťa zadaním príkazu: $ ./arpmon.

Program možno ukončiť stlačením: CTRL C.

-- IvanaKsenicova - 06 Apr 2007

-- IvanaKsenicova - 28 Oct 2007

toggleopenShow attachmentstogglecloseHide attachments
Topic attachments
I Attachment Action Size Date Who Comment
jpgJPG fcie2.JPG manage 28.2 K 28 Oct 2007 - 18:02 IvanaKsenicova  
jpgjpg diagram2.jpg manage 376.5 K 28 Oct 2007 - 18:03 IvanaKsenicova  
jpgJPG fcie3.JPG manage 34.5 K 30 Dec 2007 - 15:31 IvanaKsenicova funkcie
jpgjpg diagram3.jpg manage 474.9 K 30 Dec 2007 - 15:49 IvanaKsenicova diagram
jpgJPG jeden.JPG manage 15.1 K 04 Jan 2008 - 23:01 IvanaKsenicova funkcie
jpgJPG dva.JPG manage 13.5 K 04 Jan 2008 - 23:01 IvanaKsenicova funkcie
jpgjpg diagram4.jpg manage 485.7 K 05 Jan 2008 - 11:58 IvanaKsenicova diagram
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r9 < r8 < r7 < r6 < r5 | 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