URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3304
[ Назад ]

Исходное сообщение
"Нахождение базового адреса сети"

Отправлено KarDen , 20-Авг-04 18:11 
Добрый день.

В скрипте возникла нобходимость найти базовый адрес следующей сети, зная базовый адрес текущей сети и маску текущей сети.

Например: Базовый адрес текущей сети/Маска: 192.168.1.0/28, а мне надо найти базу следующей сети, т.е. 192.168.1.16.

На самом деле я также знаю Broadcast текущей сети и можно было бы прибавить к нему 1, но могут возникнуть ситуации с переполнением разрядности и этот алгоритм станет совершенно некрасивым...

Можно перевести Broadcast в массив нулей и единиц, и также выполнить сложение в двичной системе, но этот вариант также не нравится.

Наверняка есть более красивое и правильное и быстрое решение...

Заранее спасибо.


Содержание

Сообщения в этом обсуждении
"Нахождение базового адреса сети"
Отправлено Simps , 20-Авг-04 18:17 
>Добрый день.
>
>В скрипте возникла нобходимость найти базовый адрес следующей сети, зная базовый адрес
>текущей сети и маску текущей сети.
>
>Например: Базовый адрес текущей сети/Маска: 192.168.1.0/28, а мне надо найти базу следующей
>сети, т.е. 192.168.1.16.
>
>На самом деле я также знаю Broadcast текущей сети и можно было
>бы прибавить к нему 1, но могут возникнуть ситуации с переполнением
>разрядности и этот алгоритм станет совершенно некрасивым...
>
>Можно перевести Broadcast в массив нулей и единиц, и также выполнить сложение
>в двичной системе, но этот вариант также не нравится.
>
>Наверняка есть более красивое и правильное и быстрое решение...
>
>Заранее спасибо.

Посмотри этот перловый скрипт
http://jodies.de/ipcalc


"Нахождение базового адреса сети"
Отправлено KarDen , 20-Авг-04 19:33 
Это я знаю... Там и хотел найти решение, но там-то как раз и нет этого, т.к. вся информация выводится о текущей сети, а не о следующей! %(

"Нахождение базового адреса сети"
Отправлено Xela , 24-Авг-04 18:48 
>Это я знаю... Там и хотел найти решение, но там-то как раз
>и нет этого, т.к. вся информация выводится о текущей сети, а
>не о следующей! %(


Ну как же! Если посмотреть на скриншот http://jodies.de/ipcalc.gif то видно, что не только о текущей но и о следующей.


"Нахождение базового адреса сети"
Отправлено KarDen , 24-Авг-04 19:57 
>Ну как же! Если посмотреть на скриншот http://jodies.de/ipcalc.gif то видно, что не
>только о текущей но и о следующей.

Готов признать себя полным идиотом, но в скриншоте выводится информация о сети 192.168.25.0/24 (сеть на 256 условных хостов)

Соответственно следующая сеть (за ней) это 192.168.26.0/24. Этого на экране нигде не написно!

... Или мне уже совсем плохо...

PS На самом деле я уже решил задачу в лоб (через if), но крайне хотелось бы все-таки переделать по человечески.


"Нахождение базового адреса сети"
Отправлено Xela , 25-Авг-04 09:12 
Subnets

Netmask:   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