Pogledajte određenu poruku
Staro 25. 01. 2007.   #7
Pedja
Predrag Supurović
Grand Master
 
Datum učlanjenja: 24.01.2006
Lokacija: Užice
Poruke: 791
Hvala: 3
200 "Hvala" u 12 poruka
Pedja is on a distinguished roadPedja is on a distinguished roadPedja is on a distinguished road
Default

Zextra, stavar stoji otprilike tako kako si napisao samo si upotrebio pogresnu kombinaciju adrese i maske (10.0.0.1/24 u stari predstavlja mrezu 10.0.0.0/24 kao i sve ostale adrese iz tvog primera). Recimo da jedna mreza moze ovako da izgleda:

Kôd:
10.0.0.0/16
 +-10.0.0.0/24
 +-10.0.1.0/24
 +-10.0.2.0/24
 +-10.0.8.0/23
    +-10.0.8.0/24
    +-10.0.9.0/24
 +-10.0.10.0/24
 +-10.0.16.0/21
    +-10.0.16.0/22
       +-10.0.16.0/23
          +-10.0.16.0/24
            +-10.0.16.0/25
               +-10.0.16.0/26
                  +-10.0.16.0/27
                    +-10.0.16.0/28
                       +-10.0.16.0/29
                          +-10.0.16.0/30
                              +-10.0.16.0/32
                              +-10.0.16.1/32
                              +-10.0.16.2/32
                              +-10.0.16.3/32
                          +-10.0.16.4/30
                              +-10.0.16.4/32
                              +-10.0.16.5/32
                              +-10.0.16.6/32
                              +-10.0.16.7/32
                       +-10.0.16.8/29
                    +-10.0.16.16/28
                  +-10.0.32.0/27
               +-10.0.16.64/26
            +-10.0.16.128/25
          +-10.0.17.0/24
       +-10.0.18.0/23
    +-10.0.20.0/22
Ono sto mi je problem, to je da ako sada recimo u podatke dodam mrezu 10.0.17.0/30, onda treba da upadne kao podmreza od 10.0.17.0/24, a ako bih nakon toga dodao i mrezu 10.0.17.0/25, ona bi u hijerarhiji morala da se nadje izmedju 10.0.17.0/24 i 10.0.17.0/30.

Kvaka je naravno u tome sto bih hteo da to ubacim u relacionu bazu, koja nema hijerarhijsku strukuru....

Redosled nije tesko dobiti, posto je svaki IP u stvari 32-bitni broj, dovoljno je da tabelu sortiram po IP i masci.

Problem je utvrditi hijerarhijsku zavisnost jer je ona sakrivena u binarnom AND izmedju IP broja i maske te je:

(10.0.16.0 AND /21) = (10.0.16.185 AND /21)

gde se IP brojevi i maske zamenjuju odgovarajucim 32bitnim celobrojnim vrednostima, a AND je binarna operacija.

U opstem slucaju, ako je izraz (M AND /MM) = (N AND /MM1) tacan, to znaci da cvor N pripada mrezi M/MM gde je N IP adresa cvora, M ip adresa mreze a /MM maska mreze.

SQL, cini mi se, ne zna da radi binarne operacije. Kad bih mogao da uradim binarno AND u SELECT to bi mi resilo problem.
Pedja je offline   Odgovorite uz citat