Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sa zicem ca ne legam doar de primii 2 octeti (fara penultimul si ultimul)
- pentru simplitatea lucrurilor :)
- avem prima si a doua limita LIM1 = 4, LIM2 = 3
- daca depasim prima limita atunci banam ip1.x.x.x
- daca depasim a doua limita atunci banam ip1.ip2.x.x
- avem frecventa [0][0][0][0] pe octeti cu valori de la 1 la 4 (sa zicem)
- is avem ipuri cu frecventa
- marcam pe fiecare coloana de cate ori se repeta un octet
- 1.2.3.4
- -------
- 1 0 0 0
- 0 1 0 0
- 0 0 1 0
- 0 0 0 1
- ce sa repetat pana acum plus ce se repeta la urmatorul ip
- analog pentru restul
- 1.2.1.2
- -------
- 2 0 1 0
- 0 2 0 1
- 0 0 1 0
- 0 0 0 1
- 4.2.3.1
- -------
- 2 0 1 1
- 0 3 0 1
- 0 0 2 0
- 1 0 0 1
- vezi .. aici crapa .. pe coloana a doua avem 3 deci inseamna ca banam clasa 4.2.x.x DAR
- DAR noi ar fi trebuit sa banam 4.2.x.x doar daca acele 3 aparitii ale lui 2.x.x ar fi apartinut TOATE lui 4.x.x.x
- si 2 apartin lui 1.x.x.x si una lui 4.x.x.x
- asta nu inseamna ca trebuie sa il futem pe 1.x.x.x ci sa tinem evidenta fiecare pentru fiecare pentru fiecare
- adica pentru 3 octeti sa avem c[256][256][256] -> 16Mb
- b[256][256] si a[256]
- si cand dam de 1.2.3.4 facem a[1]++ b[1][2]++ si c[1][2][3]++
- si pe fiecare nivel verificam daca sare
- adica
- if a[o1] > LIM1 banam o1.x.x.x (toate clasa care incepe cu primul octet deoarece acesta apartine mai multor ipuri decat limita)
- if b[o1][o2] > LIM2 banam o1.o2.x.x (toata clasa care incepe cu primul si al doilea octet fiindca acest grup UNIC a depasit limita nivelului 2)
- if b[o1][o2][o3] > LIM3 banam o1.o2.o3.x (analog deja te-ai prins pana aici ;])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement