![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 13.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam to moj pierwszy post i mam zawozdke w srodowisku JS
Czy jest jakas szybka mozliwosc liczenia dlugosci adresu IP ? Jest gotowa zmienna startowa i zmienna koncowa Start ADDR: VLAN_ADDR: 10.52.28.0 Stop ADDR: VLAN_LAST: 10.52.29.254 Wiem ze rezultat odejmowania to 512 albo inny: Start ADDR: VLAN_ADDR: 10.52.64.11 Stop ADDR: VLAN_LAST: 10.52.64.15 rezultat to 5 Ale jak sie to liczy w JS ? Odejmwoanie dwoch IP: np 10.52.64.11 i 10.52.64.15 to bedzie 11 12 13 14 15 wiec to zezultat to: 5 albo 10.52.28.0 and 10.52.29.254 mamy 256 + 1 (bo liczymy od zera plus cala pula od 0 do 256) + 254+1 (bo liczymy od zera i 254 to jest 255 = czyli 257 + 255 = 512 Ale jak to zrobic w JS zeby on to tak fajnie bral, odejmowal ? etc? Mozecie mi pomoc ? pozdrawiam serdecznie, |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Po pierwsze to cała pula wynosi 256, bo 0-255. Nie ma adresu 10.52.28.256, czyli "dziabnąłeś" się o jeden i pełna pula adresów zawiera ich 511. A jak najprościej policzyć liczbę? Wykorzystaj fakt, że znasz adres ip i "policz różnicę wartości" obu adresów.
10.52.29.254 - 10.52.28.0 + 1 = //te +1 to dodatkowo jeden adres wynikający z racji uwzględnienia adresu odejmowanego (zawsze trzeba go dodać do puli) 10 * 256^3 + 52 * 256^2 + 29 * 256^1 + 254 * 256^0 - (10 * 256^3 + 52 * 256^2 + 28 * 256^1 + 0 * 256^0) + 1= // dwie najwyższe części się zredukują... 29 * 256 + 254 - 28 * 256 - 0 + 1 = ( 29 -28 ) * 256 + 254 + 1= 256+254+1 = 511 Tu inny przykład, z pominięciem już redukujących się części 10.52.29.0 - 10.52.28.255 + 1= (29 - 28) * 256 - 255 + 1= 256-255+1 = 2 I kolejny Twój: 10.52.64.15 - 10.52.64.11 + 1 = 15 - 11 + 1 = 5 Na skróty: przyjmijmy adresy A.B.C.D i E.F.G.H oraz to, że pierwszy jest mniejszy od drugiego: E.F.G.H - A.B.C.D = (E-A)*256^3 + (F- ![]() (E-A)*16777216 + (F- ![]() Sprawdzamy? 10.52.29.254 - 10.52.28.0 (10-10)*16777216 + (52-52)*65536 + (29-28)*256 + 254-0 + 1 = 1*256 + 254 + 1 = 511 ![]() 10.52.29.0 - 10.52.28.255 (10-10)*16777216 + (52-52)*65536 + (29-28)*256 + 0-255 + 1 = 1*256 - 255 + 1 = 2 ![]() Ludzie... Nauczcie się matematyki i algorytmy trochę pisać bo inaczej kiepsko widzę pokolenie przyszłych informatyków. Jeszcze trochę i dojdzie do sytuacji, że 40-letni programista będzie więcej wart niż kilkunastu 20-letnich :/ -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 20:25 |