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 a ten presmeruváva do vstupného súboru arp_vstup.txt. Dáta zo vstupného súboru sú ďalej spracovávané. Potrebné údaje sa načítajú do štruktúry a z nej sa prostredníctvom funkcií vypíšu do textového a html súboru. 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 a ten presmeruváva do vstupného súboru arp_vstup.txt. Dáta zo vstupného súboru sú spracovávané. Do štruktúry sa načítavajú IP adesy, k nim prislúchajúce MAC adresy a rozhrania (interfaces). Vo výstupnom 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 su 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
V programe je použitá
štruktúra arp_struct. Zo vstupného súboru sú do tejto štruktúry načítavané potrebné informácie.
typedef struct{
char IP[16];
char interface[5];
char MAC[100][18];
int mac_count;
} arp_struct;
Globálne premenné:
arp_struct arp[200];
int arp_count=0;
int fin;
int fout;
int fhtml;
Popis funkcií
Hlavná funkcia programu:
int main()
{_telo programu_}
Funkcia na výpis IP adries do textového súboru:
void ipcka(int w)
{_telo funkcie_}
Funkcia na výpis IP adries do html súboru:
void ipcka2(int w)
{_telo funkcie_}
Funkcia na výpis MAC adries do textového súboru:
void macadr(int w, int t)
{_telo funkcie_}
Funkcia na výpis MAC adries do html súboru:
void macadr(int w, int t)
{_telo funkcie_}
Funkcia na výpis rozhraní do textového súboru:
void inf(int w)
{_telo funkcie_}
Funkcia na výpis rozhraní do html súboru:
void inf2(int w)
{_telo funkcie_}
Funkcia na načítanie IP adries, MAC adries a rozhraní:
void read_struct()
{_telo funkcie_}
Funkcia, ktorá prostredníctvom príkazu arp -n získa obsah ARP tabuľky a presmeruje ho do vstupného súboru:
system("arp -n > arp_vstup.txt");
Hierarchia funkcií
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 su ďalej spracovávané. Obsah súboru môže vyzerať následovne:
arp_vystup.txt
Do tohto súboru sa vypisujú IP adresy a 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
arp_vystup.html
Do tohto súboru sa vypisujú IP adresy a 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
Diagram objektov
Preklad programu
Zoznam zdrojových textov
arpmon.c
styly.csc
Vlastný preklad
Pod systémom UNIX je na preklad zdrojových textov možné použiť cc kompilátor. Zdrojový text programu je teda možné prekompilovať jedným z nasledujúcich spôsobov:
cc arpmon.c | výsledkom je spustiteľný modul a.out |
cc -o arpmon arpmon.c | výsledkom je spustiteľný modul arpmon |
Po skompilovaní programu sa program spúšťa v konzolovom okne. Napíše sa a.out alebo arpmon, podľa spôsobu kompilácie a stlačí sa Enter.
Program sa ukončí po stlačení: CTRL C.
-- IvanaKsenicova - 06 Apr 2007