Биллинговая система Nodeny

Главная категория => Nodeny Plus => Тема начата: cojiict от 21 Августа 2013, 10:12:32



Название: Бланк настроек
Отправлено: cojiict от 21 Августа 2013, 10:12:32
Нещодавно вирішив відредагувати бланк налаштувань під власні потреби.
Зіткнувся з проблемою призначення DNS сервера та основного шлюзу для декількох підмереж.
В 50.32 в настройках "Параметрах сети" можна було вказати шлюз та DNS сервер для бланку налаштувань. Також адресу завантаження авторизатора l2 що відповідала шлюзу.
В N+ ці дані можна змінити відредагувавши сам бланк, але це не допоможе в разі коли у вас 2 або більше підмережі...


Название: Re: Бланк настроек
Отправлено: Efendy от 21 Августа 2013, 11:58:10
Почему не поможет? В Н50 у тебя жесткое условие: сеть = днс. В Н+ гибче - логика задается в самом бланке. Ты может в зависимости от кучи условий выдавать нужный ДНС (или другой параметр).

Вот дока по шаблонизатору: https://app.nodeny-plus.com.ua/docs/develop/tmpl.html

Вооружившись знаниями, лезем в шаблон и правим:

Код:
{% if ip.ipn > 174326785 && ip.ipn < 174326804 %} 1.1.1.1 {% else %} 1.2.3.4{% endif %}

Это условие: если ip>'10.100.4.1' и ip<'10.100.4.20', то вставить в шаблон 1.1.1.1, иначе 1.2.3.4.

Откуда берутся числа 174326785 и 174326804? Это представление 10.100.4.1 и 10.100.4.20 в числовом виде:

Код:
mysql> select inet_aton('10.100.4.1');
+-------------------------+
| inet_aton('10.100.4.1') |
+-------------------------+
|               174326785 |
+-------------------------+
1 row in set (0.00 sec)

mysql> select inet_aton('10.100.4.20');
+--------------------------+
| inet_aton('10.100.4.20') |
+--------------------------+
|                174326804 |
+--------------------------+
1 row in set (0.00 sec)


Название: Re: Бланк настроек
Отправлено: cojiict от 21 Августа 2013, 14:59:32
nice


Название: Re: Бланк настроек
Отправлено: Efendy от 21 Августа 2013, 15:27:07
Цитировать
ip>'10.100.4.1' и ip<'10.100.4.20'
это не диапазон?

Напишу доку


Название: Re: Бланк настроек
Отправлено: cojiict от 21 Августа 2013, 15:46:06
Код:
<tr> <td>Шлюз</td>          <td>{% if ip.ipn > 3232239361 && ip.ipn < 3232239614 %} 192.168.15.5 {% else %} глюк {% endif %}</td> </tr>
це "якщо 192.168.15.1-192.168.15.254 то 192.168.15.5 - решта глюк"
а як сюди вліпити ще 8 діапазонів??? який синтаксис використовується?


Название: Re: Бланк настроек
Отправлено: cojiict от 28 Августа 2013, 14:52:57
Код:
<tr> <td>Шлюз</td>          <td>{% if ip.ipn > 3232239360 && ip.ipn < 3232239614 %} 192.168.15.5 {% if ip.ipn > 3232240128 && ip.ipn <
3232240383 %} 192.168.18.5 {% else %} 192.168.19.5 {% endif %}</td> </tr>

Код:
cat /tmp/nodeny_1377688881_1439666.log

28.08.2013 14:47:08 [stat.pl(168) stat.pl::__ANON__(30) stat.pl(30) stat.pl::Hard_exit(89) stat.pl(90)]
Ошибка рендеринга /usr/local/nodeny/web/tmpl/user_blank.html
Missing right curly or square bracket at (eval 25) line 170, at end of line
syntax error at (eval 25) line 170, at EOF
Compilation failed in require at /usr/local/nodeny/web/calls.pm line 1103.

де правильно поставити ті дужки?


Название: Re: Бланк настроек
Отправлено: Efendy от 28 Августа 2013, 19:28:46
В школе хоть немного программирование учил? Бейсик там, Паскаль? На любом языке подобное выдаст ошибку:

Код:
if( условие )
   if( условие )
      ....
   else
      ....
   endif
тут чего то, мля, не хватает, может endif?

Только я вас умоляю, не надо говорить, что после изменения не будет работать. Работает неправильно и выдает ошибку - это разные вещи. Я тебе показал как надо делать без ошибки. Следующий шаг - подумать что же мы хотим получить и при каких условиях. Надеюсь, ты не будешь это делать рандомом как некоторые.

И еще читай http://forum.nodeny.com.ua/index.php?topic=2323.0 :

Цитировать
фича inet.aton('192.168.0.0')