Добрый день.В скрипте возникла нобходимость найти базовый адрес следующей сети, зная базовый адрес текущей сети и маску текущей сети.
Например: Базовый адрес текущей сети/Маска: 192.168.1.0/28, а мне надо найти базу следующей сети, т.е. 192.168.1.16.
На самом деле я также знаю Broadcast текущей сети и можно было бы прибавить к нему 1, но могут возникнуть ситуации с переполнением разрядности и этот алгоритм станет совершенно некрасивым...
Можно перевести Broadcast в массив нулей и единиц, и также выполнить сложение в двичной системе, но этот вариант также не нравится.
Наверняка есть более красивое и правильное и быстрое решение...
Заранее спасибо.
>Добрый день.
>
>В скрипте возникла нобходимость найти базовый адрес следующей сети, зная базовый адрес
>текущей сети и маску текущей сети.
>
>Например: Базовый адрес текущей сети/Маска: 192.168.1.0/28, а мне надо найти базу следующей
>сети, т.е. 192.168.1.16.
>
>На самом деле я также знаю Broadcast текущей сети и можно было
>бы прибавить к нему 1, но могут возникнуть ситуации с переполнением
>разрядности и этот алгоритм станет совершенно некрасивым...
>
>Можно перевести Broadcast в массив нулей и единиц, и также выполнить сложение
>в двичной системе, но этот вариант также не нравится.
>
>Наверняка есть более красивое и правильное и быстрое решение...
>
>Заранее спасибо.Посмотри этот перловый скрипт
http://jodies.de/ipcalc
Это я знаю... Там и хотел найти решение, но там-то как раз и нет этого, т.к. вся информация выводится о текущей сети, а не о следующей! %(
>Это я знаю... Там и хотел найти решение, но там-то как раз
>и нет этого, т.к. вся информация выводится о текущей сети, а
>не о следующей! %(
Ну как же! Если посмотреть на скриншот http://jodies.de/ipcalc.gif то видно, что не только о текущей но и о следующей.
>Ну как же! Если посмотреть на скриншот http://jodies.de/ipcalc.gif то видно, что не
>только о текущей но и о следующей.Готов признать себя полным идиотом, но в скриншоте выводится информация о сети 192.168.25.0/24 (сеть на 256 условных хостов)
Соответственно следующая сеть (за ней) это 192.168.26.0/24. Этого на экране нигде не написно!
... Или мне уже совсем плохо...
PS На самом деле я уже решил задачу в лоб (через if), но крайне хотелось бы все-таки переделать по человечески.
SubnetsNetmask: 255.255.255.128 = 25 11111111.11111111.11111111.1 0000000
Wildcard: 0.0.0.127 00000000.00000000.00000000.0 1111111
Network: 192.168.0.0/25 11000000.10101000.00000000.0 0000000 (Class C)Broadcast: 192.168.0.127 11000000.10101000.00000000.0 1111111
HostMin: 192.168.0.1 11000000.10101000.00000000.0 0000001
HostMax: 192.168.0.126 11000000.10101000.00000000.0 1111110
Hosts/Net: 126 (Private Internet)
Network: 192.168.0.128/25 11000000.10101000.00000000.1 0000000 (Class C)
Broadcast: 192.168.0.255 11000000.10101000.00000000.1 1111111
HostMin: 192.168.0.129 11000000.10101000.00000000.1 0000001
HostMax: 192.168.0.254 11000000.10101000.00000000.1 1111110
Hosts/Net: 126 (Private Internet)
Subnets: 2