Скрипт для подсчёта свободных подсетей

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
zik
мл. сержант
Сообщения: 134
Зарегистрирован: 2007-05-24 21:14:01
Откуда: Одесса
Контактная информация:

Скрипт для подсчёта свободных подсетей

Непрочитанное сообщение zik » 2008-01-22 15:30:25

Всем, привет.
Есть такая задача надо написать скрипт который бы высчивал какие сети свободные, а какие нет. Напрмер передаются значения:

Код: Выделить всё

address 64.28.180.97/29;
                address 64.28.180.33/29;
                address 64.28.180.1/29;
                address 64.28.180.17/29;
                address 64.28.180.25/29;
                address 64.28.180.113/29;
                address 64.28.180.241/28;
                address 64.28.180.137/29;
                address 64.28.180.129/29;
А надо высчитать какая сеть свободная, тут свободная 64.28.180.9/29 (ну, т.е. это не адреса подсетей, а первые ип в этой подсети (gateway), но суть таже). Может у кого есть алгоритм готовый, чтоб заново не писать или мысли как это сделать получше %)

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Скрипт для подсчёта свободных подсетей

Непрочитанное сообщение Alex Keda » 2008-01-22 15:48:19

есть калькулятор IP
на сайте статься - в мелочах чтоли
Убей их всех! Бог потом рассортирует...

Аватара пользователя
idle
мл. сержант
Сообщения: 80
Зарегистрирован: 2007-02-28 12:21:52
Откуда: Барселона
Контактная информация:

Re: Скрипт для подсчёта свободных подсетей

Непрочитанное сообщение idle » 2008-01-23 10:35:26

Писал такое на perl, с помощью модуля Net::IP.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Скрипт для подсчёта свободных подсетей

Непрочитанное сообщение zg » 2008-01-25 15:24:18

Код: Выделить всё

#!/bin/sh
                           
echo "address 64.28.180.97/29
address 64.28.180.33/29
address 64.28.180.1/29
address 64.28.180.17/29
address 64.28.180.25/29
address 64.28.180.113/29
address 64.28.180.241/28
address 64.28.180.137/29
address 64.28.180.129/29" \
| awk '{print $2}' \
| xargs -I % ipcalc -n % \
| grep -E 'Network|HostMin|HostMax'
собственно результат

Код: Выделить всё

Network:   64.28.180.96/29      01000000.00011100.10110100.01100 000
HostMin:   64.28.180.97         01000000.00011100.10110100.01100 001
HostMax:   64.28.180.102        01000000.00011100.10110100.01100 110
Network:   64.28.180.32/29      01000000.00011100.10110100.00100 000
HostMin:   64.28.180.33         01000000.00011100.10110100.00100 001
HostMax:   64.28.180.38         01000000.00011100.10110100.00100 110
Network:   64.28.180.0/29       01000000.00011100.10110100.00000 000
HostMin:   64.28.180.1          01000000.00011100.10110100.00000 001
HostMax:   64.28.180.6          01000000.00011100.10110100.00000 110
Network:   64.28.180.16/29      01000000.00011100.10110100.00010 000
HostMin:   64.28.180.17         01000000.00011100.10110100.00010 001
HostMax:   64.28.180.22         01000000.00011100.10110100.00010 110
Network:   64.28.180.24/29      01000000.00011100.10110100.00011 000
HostMin:   64.28.180.25         01000000.00011100.10110100.00011 001
HostMax:   64.28.180.30         01000000.00011100.10110100.00011 110
Network:   64.28.180.112/29     01000000.00011100.10110100.01110 000
HostMin:   64.28.180.113        01000000.00011100.10110100.01110 001
HostMax:   64.28.180.118        01000000.00011100.10110100.01110 110
Network:   64.28.180.240/28     01000000.00011100.10110100.1111 0000
HostMin:   64.28.180.241        01000000.00011100.10110100.1111 0001
HostMax:   64.28.180.254        01000000.00011100.10110100.1111 1110
Network:   64.28.180.136/29     01000000.00011100.10110100.10001 000
HostMin:   64.28.180.137        01000000.00011100.10110100.10001 001
HostMax:   64.28.180.142        01000000.00011100.10110100.10001 110
Network:   64.28.180.128/29     01000000.00011100.10110100.10000 000
HostMin:   64.28.180.129        01000000.00011100.10110100.10000 001
HostMax:   64.28.180.134        01000000.00011100.10110100.10000 110
zg#