LINUX.ORG.RU

Конфиги, диапазон ip адресов.


0

0

Подскажите, как бы грамотно сделать конфиг, в котором можно было бы задать диапазон ip-адресов (192.168.0.1 - 192.168.0.10), отдельные ip-адреса, сразу всю подсеть.

Например:

ip = 192.168.0.*

ip = 192.168.0.[1-10]

или

ip-start = 192.168.0.1 ip-end = 192.168.0.10

ip = 192.168.0.*

★★

Ответ на: комментарий от cathode

В том-то и дело, что я не знаю как. Я и сформульровать вопрос-то по нормальному не могу, если бы мог - уже знал бы ответ.

Суть в том, что мне нужно в конфигурационном файле системы указать список ip адресов. Неизвестно какие подсети, неизвестно какие адреса. В общем понятно, что указывать каждый адрес по отдельности - плохая идея. Адреса, скорее всего, можно будет указать в виде диапазона. Или же указать все адреса из определенной подсети.

Ian ★★
() автор топика
Ответ на: комментарий от hizel

Маска, в принципе мне не важна.

Идея интересная, похожая на то что я предлагал: 1.2.3.[1-10]

Ian ★★
() автор топика
Ответ на: комментарий от Ian

> Я и сформульровать вопрос-то по нормальному не могу, если бы мог - уже знал бы ответ.

Лови -- "devise domain specific language for describing IP addresses ranges"

dilmah ★★★★★
()

Ну и указывай в общепринятом формате ip/mask.

Например:
отдельный хост: 192.168.64.2/32 или 192.168.64.2/255.255.255.255
подсеть: 192.168.64.0/24 или 192.168.64.0/255.255.255.0

Надо разъяснять, почему написанное через "или" эквивалентно?

gaa ★★
()
Ответ на: комментарий от gaa

> Надо разъяснять, почему написанное через "или" эквивалентно?

Нет, не надо. Это я понимаю. =)

Ты умолчал про диапазоны: 1.2.3.1 - 1.2.3.10

Ian ★★
() автор топика
Ответ на: комментарий от dilmah

> Лови -- "devise domain specific language for describing IP addresses ranges"

Google такого не нашел...

Ian ★★
() автор топика
Ответ на: комментарий от Ian

ИМХО лучше

[ip-range]
ip-start=192.168.100.1
ip-end=192.168.100.100

Парсить проще. Читаешь файл построчно, разбиваешь строки по символу "=", триммишь и готово. Оно конечно а-ля ini зато ну очень просто парсится.

Ну или xml там какой:

<ip-range>
<start>192.168.0.99</start>
<end>192.168.0.175</start>
</ip-range>

Тут вообще все на блюдечке, бери готовый DOM-построитетель и не парься.

Хотя конечно все это дело вкуса. :)))

cathode
()
Ответ на: комментарий от Ian

> Ты умолчал про диапазоны: 1.2.3.1 - 1.2.3.10

задавай через запятую:
1.2.3.1/32, 1.2.3.2/31, 1.2.3.4/30, 1.2.3.8/31. Вроде тот же диапазон задал :)

Но вообще принято выбирать диапазоны айпишников так, чтобы они легко записывались в формате ip/mask.

gaa ★★
()
Ответ на: комментарий от cathode

><ip-range> <start>192.168.0.99</start> <end>192.168.0.175</start> </ip-range>

Такой вариант я тоже рассматривал и на данном этапе к нему и склоняюсь.

Ian ★★
() автор топика

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

Если блока два, то они выгдядят так же как подсети:

192.168.0/20

Если блока три, то третий блок описывает диапазон в ктором меняются младшие биты:

192.168.0/24/1-10

Такие пары и троицы потенциально можно объединять пробелами, чтобы объединить диапазоны.

dilmah ★★★★★
()
Ответ на: комментарий от cathode

> Тут вообще все на блюдечке, бери готовый DOM-построитетель и не парься.

Ох уж эти любители зюмеля... Человеку просит предложить, как опеределять маску, а ты ему формат хранения подсовываешь.

gaa ★★
()
Ответ на: комментарий от gaa

> Но вообще принято выбирать диапазоны айпишников так, чтобы они легко записывались в формате ip/mask.

Не я выбираю эти ip и я не знаю какие они могут там оказаться.

Ian ★★
() автор топика
Ответ на: комментарий от gaa

> Ох уж эти любители зюмеля... Человеку просит предложить, как опеределять маску, а ты ему формат хранения подсовываешь.

Он правилоьно подсовывает.

Ian ★★
() автор топика
Ответ на: комментарий от dilmah

Хм... Интересно. Только у меня работа немного на другом уровне идет.

Я из http запроса достаю ip клиента и, если этот ip есть в конфиге, то выполнить какое-либо действие.

Ian ★★
() автор топика
Ответ на: комментарий от Ian

s/то выполнить /то мне необходимо выполнить

Ian ★★
() автор топика
Ответ на: комментарий от Ian

>> Но вообще принято выбирать диапазоны айпишников так, чтобы они легко записывались в формате ip/mask.
> Не я выбираю эти ip и я не знаю какие они могут там оказаться.


В описанном мной метоже можно засунуть любой диапазон. Но для нетипичных диапазонов там будет малость подлиннее запись.

Насчёт startip-endip: тоже не лишено смысла, но не наступи на грабли, когда будешь конвертировать в четырёхбайтное целое.

gaa ★★
()
Ответ на: комментарий от gaa

>> Человеку просит предложить, как опеределять маску, а ты ему формат хранения подсовываешь.

Помоему как раз формат хранения ему и нужен :)))

cathode
()
Ответ на: комментарий от Ian

> Буду делать так как ты сказал, только переведу это все в XML.

Стрелять баллистическими ракетами с разделяющимися боеголовками по воробьям --- это сильно!

gaa ★★
()
Ответ на: комментарий от gaa

Там достаточно большой конфиг, который является дополнением к другим большим конфигам, которые еще и в БД храняться. Ничего не поделаешь - это Sun. Так что дабы не выделяться, а "встроиться" в систему придется делать XML.

Ian ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.