Биллинговая система Nodeny
01 Мая 2024, 18:31:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
  Начало Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1] 2 3 4
1  Главная категория / Nodeny 50 / Re: Поломался дизайн (оформление) v50.32 : 28 Мая 2017, 13:12:17
Вернулся к Apache22.
Всё заработало без дополнительных манипуляций.

Итог: моих знаний не хватило для настройки apache24 Грустный

Тему можно закрыть.
2  Главная категория / Nodeny 50 / Re: Поломался дизайн (оформление) v50.32 : 27 Мая 2017, 16:45:08


Что-то я совсем не понимаю происходящего.
В платежах не показываются скрытые поля.

Может я что-то в апаче забыл включить?
3  Главная категория / Nodeny 50 / Re: Поломался дизайн (оформление) v50.32 : 26 Мая 2017, 16:12:23
Спасибо, вылечил.
А что с дизайном делать? Раньше были красивые кнопочки и т.п. А сейчас только текст в меню.
4  Главная категория / Nodeny 50 / Re: Поломался дизайн (оформление) v50.32 : 26 Мая 2017, 15:03:23

Некоторых таблиц у меня вообще нет Улыбающийся
Из того, что было, выполнил по инструкции.
К сожалению осталось
Код:
 [Fri May 26 15:57:41.540551 2017] [cgi:error] [pid 65563] [client 192.168.100.100:58158] AH01215: DBD::mysql::db do failed: Field 'param_hash' doesn't have a default value at /usr/local/nodeny/web/calls.pl line 587.: /usr/local/www/apache24/cgi-bin/adm/adm.pl, referer: https://test.org/cgi-bin/adm/adm.pl?pp=T1-619246782EaQ4AuotAZL8ryvOUINSoQ&a=deluser&act=del&id=8267

Собственно сама процедура из calls.pl
Код:
sub sql_do
{
 my ($d,$sql,$comment,$hidden)=@_;
 my $t_sql=[gettimeofday];
 $d=$d->do($sql)+0; #line 587
 $t_sql=tv_interval($t_sql);
 if( $Ashowsql )
 {
    $comment="<span class=data2>$comment</span><br>" if $comment;
    $DOC->{admin_area}.=$comment eq '0'? '<small>'.($hidden||&Filtr_out($sql))." <span class=disabled>($d строк, $t_sql сек)</span></small><br>" :
        &MessX($comment.($hidden||&Filtr_out($sql).'<br>')."<span class=disabled>Обновлено строк:</span> $d. <span class=disabled>Время выполнения sql:
 }
 $T_sql+=$t_sql;
 return $d;
}
5  Главная категория / Nodeny 50 / Поломался дизайн (оформление) v50.32 : 21 Мая 2017, 19:43:29
После переустановки системы поломалось оформление.
Данные были резервно скопированы с сервера и опять же залиты на тот же сервер на новую ОС. БД так же была просто скопирована с /var/db/mysql и залита в таком же виде на новую систему.
Вроде всё работает. Платежи проходят, клиенты создаются/удалаются и т.п. Но вот некоторые ошибки...


А ещё, при удалении клиента в логах апача
Код:
AH01215: DBD::mysql::db do failed: Field 'param_hash' doesn't have a default value at /usr/local/nodeny/web/calls.pl line 587.: /usr/local/www/apache24/cgi-bin/adm/adm.pl, referer: https://test.org/cgi-bin/adm/adm.pl?pp=T1-806166798tEMjTUtyusXmV3H3X1AcQw&a=deluser&act=del&id=9227
Что делать, пока не знаю.

6  Главная категория / Общий раздел / ipfw pipe via VLAN(bridge) : 25 Января 2017, 23:11:13
Добрый день уважаемым форумчанам.
Хочу: делить поровну скорость в VLAN
Имею: bridge собраный из VLAN
VLAN без ip адресов. На бридже установлен адрес 172.16.0.1/21

Подозреваю, что делать это нужно приблизительно такой командой, но уверенности нет
ipfw pipe 1 pass all from table(0) to mask dst-ip 0xffffffff via vlan10 (Это, я так понимаю для исходящего)
А как для входящего написать?
В интернетах встречал правила с xmit и recv.

Вопрос такой, бедет ли оно вообще работать и как правильно организовать структуру правил?
7  Главная категория / Nodeny 50 / Re: додаткове поле : 25 Апреля 2016, 00:12:13
Да, для вновь созданного поля в БД нет строк его упоминания. Нужно изначально как-то инициализировать.
Себе делал, как писал выше, но все допполя были инициализированы в dopvalues.
А каким запросом можно инициализировать поле? Кроме скрипта, мне в голову ничего не приходит.
8  Главная категория / Nodeny 50 / Re: додаткове поле : 24 Апреля 2016, 22:47:03
То есть, если создать нового абонента, то поле у него будет пустое? Или имелось ввиду что-то другое?
9  Главная категория / Nodeny 50 / Re: додаткове поле : 24 Апреля 2016, 01:36:44
Код:
UPDATE  `bill`.`dopvalues` SET  `field_value` =  '1' WHERE  `dopvalues`.`dopfield_id` = ID вашего поля из dopfields
Ну ну, желаю успеха ))

Ну будет оно во всех ревизиях, и что с того?
10  Главная категория / Nodeny 50 / Re: static arp для клиентов "Всегда он-лайн" : 24 Апреля 2016, 01:34:37
Замечания и пожелания приветствуются Улыбающийся

/usr/local/etc/rc.d/statarp.sh (755)
Код:
#!/bin/sh
        # Static ARP-table loader

        case $1 in
                start)
                        #arp -d -a > /dev/null
                        #arp -f /usr/local/nodeny/arp_static.txt > /dev/null
                        arp -an | grep published | grep -v ff:ff:ff:ff:ff:ff | cut -d'(' -f2 | cut -d')' -f1 | xargs -n1 arp -d > /dev/null
                        cat /usr/local/nodeny/arp_static.conf | while read line
                        do
                         if [ -n "$line"  ];
                          then
                            #echo $line
                              /usr/sbin/arp -s $line
                          fi
                        done
                        echo 'Static ARP-table is loaded'
                        ;;
                stop)
                        #arp -d -a > /dev/null
                        arp -an | grep published | grep -v ff:ff:ff:ff:ff:ff | cut -d'(' -f2 | cut -d')' -f1 | xargs -n1 arp -d > /dev/null
                        echo 'Static ARP-table is unloaded'
                        ;;
                restart)
                        #arp -d -a > /dev/null
                        #arp -f /usr/local/nodeny/arp_static.txt > /dev/null
                        arp -an | grep published | grep -v ff:ff:ff:ff:ff:ff | cut -d'(' -f2 | cut -d')' -f1 | xargs -n1 arp -d > /dev/null
                        cat /usr/local/nodeny/arp_static.conf | while read line
                        do
                         if [ -n "$line"  ];
                          then
                            #echo $line
                              /usr/sbin/arp -s $line
                          fi
                        done

                        echo 'Static ARP-table is reloaded'
                        ;;
                status)
                        arp -an | grep published | grep -v ff:ff:ff:ff:ff:ff | cut -d'(' -f2 | cut -d')' -f1

                ;;

        *)
               echo "Usage: `basename $0` {start|stop|restart|status}" >&2
                ;;
        esac
        exit 0

/usr/home/admin/nomake_arp 755
Код:
#!/bin/sh
cd /usr/local/nodeny/
nohup  /usr/bin/perl nomake.pl  arp_static.txt &

/usr/local/nodeny/arp_static.txt
Код:
<file>arp_static.conf</file>
<reload>/usr/local/etc/rc.d/statarp.sh restart</reload>
<template>1</template>

<filtr net='172.16.0.0/21' dopdata-_arp='^1$'>
<ip> <dopdata-_mac> pub
</filtr>

<filtr net='172.16.16.0/21' dopdata-_arp='^1$'>
<ip> <dopdata-_mac> pub
</filtr>
11  Главная категория / Nodeny 50 / Re: додаткове поле : 24 Апреля 2016, 00:48:44
Доброго дня усім,
підкажіть будь-ласка  є створене додаткове поле _no_statpw з типом да\нет, яким запитом в mysql поставити всім абонентам його в значення да

Код:
UPDATE  `bill`.`dopvalues` SET  `field_value` =  '1' WHERE  `dopvalues`.`dopfield_id` = ID вашего поля из dopfields
12  Главная категория / Общий раздел / Re: WEB авторизация с доп проверкой локального IP : 26 Октября 2015, 15:54:40
Доковырял я этот скрипт Улыбающийся

Нужно в функции изменить (красным):
  function updateDisplay(newAddr) {
        if (newAddr in addrs) return;
        else addrs[newAddr] = true;
        var displayAddrs = Object.keys(addrs).filter(function (k) { return addrs[k]; });

        if (displayAddrs[1]){
        document.getElementById('list').value = displayAddrs[1] || "n/a";}else{
        document.getElementById('list').value = displayAddrs[0] || "n/a";}
    }



А в форме написать тег input следующим образом.
    <input type=hidden name=ip id="list">

Теперь строка авторизации выглядит так.
   /cgi-bin/stat.pl?ses=269115&a=98&ip=10.10.20.31&uu=test&pp=5de1d4ca2ca2bae11cac34ce950f3477

Осталось настроить проверку IP на стороне биллинга и писать подозрительные в лог Улыбающийся
Помощь приветствуется.
13  Главная категория / Общий раздел / WEB авторизация с доп проверкой локального IP : 26 Октября 2015, 11:24:05
Добрый день мои хорошие Улыбающийся
Несколько дней назад созрела мысль и на 90% реализовалась. Загвоздка в методе input (html).
И так имеем:
  • Скрипт для выяснение локального IP
Код:
<script type="text/javascript">

// NOTE: window.RTCPeerConnection is "not a constructor" in FF22/23
var RTCPeerConnection = /*window.RTCPeerConnection ||*/ window.webkitRTCPeerConnection || window.mozRTCPeerConnection;

if (RTCPeerConnection) (function () {
    var rtc = new RTCPeerConnection({iceServers:[]});
    if (1 || window.mozRTCPeerConnection) {      // FF [and now Chrome!] needs a channel/stream to proceed
        rtc.createDataChannel('', {reliable:false});
    };
   
    rtc.onicecandidate = function (evt) {
        // convert the candidate to SDP so we can run it through our general parser
        // see https://twitter.com/lancestout/status/525796175425720320 for details
        if (evt.candidate) grepSDP("a="+evt.candidate.candidate);
    };
    rtc.createOffer(function (offerDesc) {
        grepSDP(offerDesc.sdp);
        rtc.setLocalDescription(offerDesc);
    }, function (e) { console.warn("offer failed", e); });
   
   
    var addrs = Object.create(null);
    addrs["0.0.0.0"] = false;
    var addrss = Object.create(null);
    addrss["0.0.0.0"] = false;
   
    function updateDisplay(newAddr) {
        if (newAddr in addrs) return;
        else addrs[newAddr] = true;
        var displayAddrs = Object.keys(addrs).filter(function (k) { return addrs[k]; });

        if (displayAddrs[1]){
//        document.getElementById('list').textContent = displayAddrs.join(" or perhaps ") || "n/a";
        document.getElementById('list').textContent = displayAddrs[1] || "n/a";}else{

document.getElementById('list').textContent = displayAddrs[0] || "n/a";}
    }
   
    function grepSDP(sdp) {
        var hosts = [];
        sdp.split('\r\n').forEach(function (line) { // c.f. http://tools.ietf.org/html/rfc4566#page-39
            if (~line.indexOf("a=candidate")) {     // http://tools.ietf.org/html/rfc4566#section-5.13
                var parts = line.split(' '),        // http://tools.ietf.org/html/rfc5245#section-15.1
                    addr = parts[4],
                    type = parts[7];
                if (type === 'host') updateDisplay(addr);
            } else if (~line.indexOf("c=")) {       // http://tools.ietf.org/html/rfc4566#section-5.7
                var parts = line.split(' '),
                    addr = parts[2];
                updateDisplay(addr);
            }
        });
    }
})(); else {
//    document.getElementById('list').innerHTML = "<code>ifconfig | grep inet | grep -v inet6 | cut -d\" \" -f2 | tail -n1</code>";
    document.getElementById('list').nextSibling.textContent = "In Chrome and Firefox your IP should display automatically, by the power of WebRTCskull.";
}

</script>


  • Форма авторизации с сайта для доступа в инет
Код:
<?php
$day_now
=date('j');
$year_now=date('Y')-1900;
$mon_now=date('m')-1;
$ses1=$day_now.$mon_now.$year_now;
?>


<script type="text/javascript" src=/i/md5.js></script>
<form method=get action="/cgi-bin/stat.pl" onsubmit='pp.value=hex_md5(ses.value+" "+pp.value); return true'>
<input type=hidden name=ses value='<?php echo $ses1?>'>
<input type=hidden name=a value='98'>

<table class="text" style="color:424649l font-size:9px">
<tr><td align=center colspan=3><b>Auth</b></td></tr>
<tr><td align=left width='33%'>Login:</td><td><input type=text name=uu size=15 value='' tabindex=1></td>
<tr><td align=left width='33%'>Password:</td><td><input type=password name=pp size=15 value='' tabindex=2></td>
<tr><td align=center colspan=3><input type=submit value='Enter' tabindex=3></td></tr>
</table>
</form>



    Никак не получается отправить узнанный IP через форму. Понятно, что результатом выполнения скрипта будет переменная, о которой сервер ничего не знает.
    Вставить результат в форму тоже не получатся
    Код:
    <input type=text name=a value='<?php echo "<span id=list></span>"?>'> 
    и никакими другими способами тоже.
    Подозреваю, что нужно преобразовать результат на стороне клиента в переменную и работать уже с ней. Но в скриптинге не силён Грустный
    Милостиво прошу помощи в разрешении этой задачки Улыбающийся
    14  Главная категория / Железо для нодени / Re: Посоветуйте материннку с SATA RAID 1 (недорогую) : 25 Сентября 2015, 09:40:12
    Купил DELL POWEREDGE R310 XEON QUAD X3430 2.4GHz 16Gb SAS RAID H700 2PSU
    15  Главная категория / Железо для нодени / Посоветуйте материннку с SATA RAID 1 (недорогую) : 23 Сентября 2015, 10:27:05
    Задался целью сделать недорой RAID сервак чисто под биллинг и мониторинг сети. Нагрузка предполагается небольшая -- обсчитывать данные с двух сателитов (по 700 IP на сателите). Опрашивать по snmp сетевое оборудование и писать всё это в БД.
    Посоветуйте, пожалуйста, что-то недорогое (бюджет до 500$; уже есть 3 SATAIII диска по 250Гб).

    Как вы относитесь к б/у серверам типа такого (local.com.ua)
    Сервер INTEL Rack 1U / SR1630GP / i3-540, 2х3.06гГц / 2х2Gb DDR3-1333 / 1х500Гб / 2xLan / 350W = 4851 грн (1 шт)
    Страниц: [1] 2 3 4
    Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!