die gute Einwahl- und Abrechnungsverwaltung fuer wg-netze

This commit is contained in:
io 2005-02-11 00:06:43 +00:00
parent a8998763b3
commit 4c9a86a6d0
24 changed files with 2350 additions and 0 deletions

View file

@ -0,0 +1 @@
DirectoryIndex index.php

View file

@ -0,0 +1,43 @@
<BR>
<DIV ALIGN="CENTER">
<?PHP
$nutzer=holeNutzerDerIP($IP);
$status=holeNutzerStatus($nutzer);
$prefixFett='<H1><DIV ALIGN="CENTER">';
$suffixFett='</DIV></H1>';
$prefixNormal='<H2><DIV ALIGN="CENTER">';
$suffixNormal='</DIV></H2>';
$linkVerbindung='<A HREF="verbindeNutzer.php">verbinden</A>';
$linkTrennung='<A HREF="trenneNutzer.php">trenne Verbindung</A>';
if ($status == "getrennt")
{
print $prefixFett . $linkVerbindung . $suffixFett;
print $prefixNormal . $linkTrennung . $prefixNormal;
}
elseif (($status == "bei der Einwahl") || ($status == "verbunden"))
{
print $prefixNormal . $linkVerbindung . $suffixNormal;
print $prefixFett . $linkTrennung . $prefixFett;
}
else print '<H2><DIV ALIGN="CENTER">Zugriff verweigert</DIV></H2>';
print "</TR><TABLE>";
?>
<HR><BR>
<TABLE BORDER="0">
<COLGROUP WIDTH="180" SPAN="4"></COLGROUP>
<TR>
<TD><DIV ALIGN="CENTER"><A HREF="zeigeKosten.php">Kostenaufstellung</A></DIV></TD>
<TD><DIV ALIGN="CENTER"><A HREF="zeigeProtokoll.php">Protokoll anzeigen</A></DIV></TD>
<TD><DIV ALIGN="CENTER"><A HREF="http://io.wg">io-Startseite</A></DIV></TD>
<TD><DIV ALIGN="CENTER"><A HREF="ausschalten.php">io abschalten</A></DIV></TD>
</TR>
</TABLE>
</DIV>
<BR>

View file

@ -0,0 +1,10 @@
<?PHP
print "<DIV ALIGN=\"CENTER\"><BR>";
$namen = holeAktiveNutzer();
print "<B>offene Verbindungen:</B> $namen";
print "<BR><BR></DIV>";
?>

View file

@ -0,0 +1,22 @@
<?PHP require_once("definitionen.php"); ?>
<HTML>
<HEAD>
<TITLE>io wird heruntergefahren</TITLE>
</HEAD>
<BODY>
<?PHP io_ausschalten(); ?>
<H2><DIV ALIGN="CENTER"><BR><BR><BR><BR>
io wird heruntergefahren ...
<BR><BR></DIV></H3>
<DIV ALIGN="CENTER">
(der Strom kann in etwa zwei Minuten abgeschaltet werden)
</DIV>
</BODY>
</HTML>

View file

@ -0,0 +1,144 @@
<?PHP
error_reporting(E_ALL);
session_cache_limiter("no-cache");
$DialSkript="sudo -u wgdialer /home/WGDialer/scripts/WGDialer.sh";
$TarifWahl="sudo -u root /home/WGDialer/scripts/waehleISDN-Tarif.sh";
$IP=$HTTP_SERVER_VARS["REMOTE_ADDR"];
$NUTZER=holeNutzerDerIP($IP);
exec("$DialSkript alle-nutzer",$ALLENUTZER);
function StatusMeldung($text)
{
global $StatusText;
$StatusText=$text;
}
function zeigeStatusMeldung()
{
global $StatusText;
if (isset($StatusText))
{
print '<H3><DIV ALIGN="CENTER">Statusmeldung: ';
print $StatusText;
print '</DIV></H3>';
unset($StatusText);
}
}
function holeIPdesNutzers($name)
{
global $DialSkript;
return exec("$DialSkript nutzer2ip $name");
}
function holeNutzerDerIP($ip)
{
global $DialSkript;
return exec("$DialSkript ip2nutzer $ip");
}
function holeAktiveNutzer()
{
global $DialSkript;
return exec("$DialSkript alle-aktiven-nutzer");
}
function holeVerbindungsStatus()
{
global $DialSkript;
return exec("$DialSkript status-verbindung");
}
function holeNutzerStatus($nutzer)
{
global $DialSkript;
return exec("$DialSkript status-nutzer $nutzer");
}
function verbindeNutzer($nutzer)
{
global $DialSkript;
return exec("$DialSkript verbinde $nutzer");
}
function trenneNutzer($nutzer)
{
global $DialSkript;
return exec("$DialSkript trenne $nutzer");
}
function notTrennung()
{
global $DialSkript;
return exec("$DialSkript not-aus");
}
function holeKostenDesNutzers($nutzer, $von, $bis)
{
global $DialSkript;
return exec("$DialSkript kosten $nutzer $von $bis");
}
function zeigeNutzerLog($nutzer)
{
global $DialSkript;
exec("$DialSkript nutzer-log $nutzer | cut -f 1,3-6 --output-delimiter=\"</TD><TD>\"",$out);
if (count($out) > 1)
{
$kopf = str_replace("</TD><TD>","</TH><TH>",array_shift($out));
$gesamt='<DIV ALIGN="CENTER"><TABLE BORDER="1"><TR><TH>' . $kopf . '</TH></TR>';
foreach ($out as $z)
$gesamt.='<TR><TD>' . $z . '</TD></TR>';
$gesamt.='</TABLE></DIV>';
} else $gesamt='<BR><DIV ALIGN="CENTER">keine Eintr&auml;ge</DIV>';
return $gesamt;
}
function zeigeProtokoll($protokoll) // meldungen, fehler, dialer, script
{
global $DialSkript;
exec("$DialSkript protokoll $protokoll",$out);
$gesamt="";
foreach ($out as $z)
$gesamt=$gesamt . $z . '<BR>';
if (count($out)<=1) $gesamt='<BR><DIV ALIGN="CENTER">keine Eintr&auml;ge</DIV>';
return $gesamt;
}
function holeTarif()
{
global $TarifWahl;
return exec("$TarifWahl tarif");
}
function setzeTarif($tarif)
{
global $TarifWahl;
exec("$TarifWahl $tarif");
}
function io_ausschalten()
{
exec("/sbin/shutdown -h now");
}
?>

View file

@ -0,0 +1,35 @@
<?PHP require_once("definitionen.php"); ?>
<HTML>
<HEAD>
<HTTP-EQUIV="refresh" CONTENT="5; URL=http://io/index.php">
<META HTTP-EQUIV="expires" content="0">
<META HTTP-EQUIV="cache-control" content="no-cache">
<TITLE>WG-Netzverwaltung</TITLE>
</HEAD>
<BODY>
<?PHP
error_reporting(E_ALL);
include("verbindungsStatus.php");
print "<HR>";
//include("nutzerStatus.php");
//print "<HR>";
include("aktiveNutzer.php");
print "<HR>";
include("aktionen.php");
print "<HR>";
zeigeStatusMeldung();
?>
</BODY>
</HTML>

View file

@ -0,0 +1,9 @@
<?PHP
require_once("definitionen.php");
trenneVerbindung();
include_once("index.php");
?>

View file

@ -0,0 +1,27 @@
<BR>
<DIV ALIGN="CENTER">
<TABLE BORDER="0">
<TR><TH>Name</TH>
<TH>IP</TH>
<TH>Status</TH></TR>
<?PHP
foreach($ALLENUTZER as $nutzer)
{
$ip=holeIPdesNutzers($nutzer);
$status=holeNutzerStatus($nutzer);
print "<TR><TD>$nutzer</TD>";
print "<TD>$ip</TD>";
print "<TD>$status</TD></TR>";
}
?>
</TABLE>
</DIV>
<BR>

View file

@ -0,0 +1,13 @@
<?PHP
require_once("definitionen.php");
$tarif=holeTarif();
if (substr_count($tarif,"XXL") > 0)
setzeTarif("normal");
else setzeTarif("xxl");
include("index.php");
?>

View file

@ -0,0 +1,13 @@
<?PHP
require_once("definitionen.php");
$nutzer=holeNutzerDerIP($IP);
if (holeNutzerStatus($nutzer) != "getrennt")
StatusMeldung(trenneNutzer($nutzer));
else StatusMeldung("Nutzer $nutzer war nicht verbunden!");
include("index.php");
?>

View file

@ -0,0 +1,13 @@
<?PHP
require_once("definitionen.php");
$nutzer=holeNutzerDerIP($IP);
if (holeNutzerStatus($nutzer) == "getrennt")
StatusMeldung(verbindeNutzer($nutzer));
else StatusMeldung("Nutzer $nutzer bereits verbunden!");
include("index.php");
?>

View file

@ -0,0 +1,20 @@
<?PHP
print '<BR><H1><DIV ALIGN="CENTER">';
print '<A HREF="index.php">';
print 'Status aktualisieren: ';
print '</A>';
print holeVerbindungsStatus();
print '</DIV></H1>';
print '<DIV ALIGN="CENTER">';
$tarif=holeTarif();
print "Aktueller Tarif: $tarif";
print '<BR>';
print '<TT>Vorsicht:</TT><BR>achte unbedingt darauf, dass der angezeigte Tarif <BR>';
print 'zum heutigen Wochentag passt - ansonsten klicke ';
print '<A HREF="tarifWechsel.php">hier</A> um den anderen Tarif zu aktivieren!<BR>';
print '</DIV>';
?>

View file

@ -0,0 +1,31 @@
<?PHP require_once("definitionen.php"); ?>
<HTML>
<HEAD>
<TITLE>Kosten&uuml;bersicht</TITLE>
</HEAD>
<BODY>
<BR><H2><DIV ALIGN="CENTER"><A HREF="index.php">zur&uuml;ck zur Startseite</A></DIV></H2><BR>
<HR><BR>
<DIV ALIGN="CENTER">
<?PHP
include("zeigeKostenFormular.php");
if (isset($HTTP_POST_VARS["Anzeige"]))
{
$von=$HTTP_POST_VARS["vJahr"]*10000+$HTTP_POST_VARS["vMonat"]*100+$HTTP_POST_VARS["vTag"];
$bis=$HTTP_POST_VARS["bJahr"]*10000+$HTTP_POST_VARS["bMonat"]*100+$HTTP_POST_VARS["bTag"];
print '<BR><HR><BR>';
include("zeigeKostenListe.php");
}
?>
</DIV>
</BODY>
</HTML>

View file

@ -0,0 +1,111 @@
<FORM NAME="zeitraum" ACTION="zeigeKosten.php" METHOD="POST">
von <SELECT NAME="vTag">
<OPTION>1</OPTION>
<OPTION>2</OPTION>
<OPTION>3</OPTION>
<OPTION>4</OPTION>
<OPTION>5</OPTION>
<OPTION>6</OPTION>
<OPTION>7</OPTION>
<OPTION>8</OPTION>
<OPTION>9</OPTION>
<OPTION>10</OPTION>
<OPTION>11</OPTION>
<OPTION>12</OPTION>
<OPTION>13</OPTION>
<OPTION>14</OPTION>
<OPTION>15</OPTION>
<OPTION>16</OPTION>
<OPTION>17</OPTION>
<OPTION>18</OPTION>
<OPTION>19</OPTION>
<OPTION>20</OPTION>
<OPTION>21</OPTION>
<OPTION>22</OPTION>
<OPTION>23</OPTION>
<OPTION>24</OPTION>
<OPTION>25</OPTION>
<OPTION>26</OPTION>
<OPTION>27</OPTION>
<OPTION>28</OPTION>
<OPTION>29</OPTION>
<OPTION>30</OPTION>
<OPTION>31</OPTION>
</SELECT>
<SELECT NAME="vMonat">
<OPTION VALUE="1">Januar</OPTION>
<OPTION VALUE="2">Februar</OPTION>
<OPTION VALUE="3">M&auml;rz</OPTION>
<OPTION VALUE="4">April</OPTION>
<OPTION VALUE="5">Mai</OPTION>
<OPTION VALUE="6">Juni</OPTION>
<OPTION VALUE="7">Juli</OPTION>
<OPTION VALUE="8">August</OPTION>
<OPTION VALUE="9">September</OPTION>
<OPTION VALUE="10">Oktober</OPTION>
<OPTION VALUE="11">November</OPTION>
<OPTION VALUE="12">Dezember</OPTION>
</SELECT>
<SELECT NAME="vJahr">
<OPTION>2003</OPTION>
<OPTION>2004</OPTION>
<OPTION>2005</OPTION>
<OPTION>2006</OPTION>
<OPTION>2007</OPTION>
</SELECT>
bis <SELECT NAME="bTag">
<OPTION>1</OPTION>
<OPTION>2</OPTION>
<OPTION>3</OPTION>
<OPTION>4</OPTION>
<OPTION>5</OPTION>
<OPTION>6</OPTION>
<OPTION>7</OPTION>
<OPTION>8</OPTION>
<OPTION>9</OPTION>
<OPTION>10</OPTION>
<OPTION>11</OPTION>
<OPTION>12</OPTION>
<OPTION>13</OPTION>
<OPTION>14</OPTION>
<OPTION>15</OPTION>
<OPTION>16</OPTION>
<OPTION>17</OPTION>
<OPTION>18</OPTION>
<OPTION>19</OPTION>
<OPTION>20</OPTION>
<OPTION>21</OPTION>
<OPTION>22</OPTION>
<OPTION>23</OPTION>
<OPTION>24</OPTION>
<OPTION>25</OPTION>
<OPTION>26</OPTION>
<OPTION>27</OPTION>
<OPTION>28</OPTION>
<OPTION>29</OPTION>
<OPTION>30</OPTION>
<OPTION>31</OPTION>
</SELECT>
<SELECT NAME="bMonat">
<OPTION VALUE="1">Januar</OPTION>
<OPTION VALUE="2">Februar</OPTION>
<OPTION VALUE="3">M&auml;rz</OPTION>
<OPTION VALUE="4">April</OPTION>
<OPTION VALUE="5">Mai</OPTION>
<OPTION VALUE="6">Juni</OPTION>
<OPTION VALUE="7">Juli</OPTION>
<OPTION VALUE="8">August</OPTION>
<OPTION VALUE="9">September</OPTION>
<OPTION VALUE="10">Oktober</OPTION>
<OPTION VALUE="11">November</OPTION>
<OPTION VALUE="12">Dezember</OPTION>
</SELECT>
<SELECT NAME="bJahr">
<OPTION>2003</OPTION>
<OPTION>2004</OPTION>
<OPTION>2005</OPTION>
<OPTION>2006</OPTION>
<OPTION>2007</OPTION>
</SELECT>
<INPUT TYPE="SUBMIT" NAME="Anzeige" VALUE="zeigen">
</FORM>

View file

@ -0,0 +1,22 @@
<?PHP // erfordert $von und $bis in Form von 20041231 ?>
<TABLE BORDER="1">
<TR><TH>wer?</TH><TH>wieviel?</TH></TR>
<?PHP
foreach ($ALLENUTZER as $nutzer)
{
print '<TR><TD>' . $nutzer . '</TD><TD><DIV ALIGN="CENTER">';
$erg = holeKostenDesNutzers($nutzer, $von, $bis);
$cent = $erg % 100;
if ($cent<10) $cent="0$cent";
$euro = $erg/100;
settype($euro,"integer");
print $euro . ',' . $cent;
print "</DIV></TD></TR>";
}
?>
</TABLE>

View file

@ -0,0 +1,42 @@
<?PHP require_once("definitionen.php"); ?>
<HTML>
<HEAD>
<TITLE>WG-Netzverwaltung - Protokolle</TITLE>
<META HTTP-EQUIV="expires" content="0">
<META HTTP-EQUIV="cache-control" content="no-cache">
</HEAD>
<BODY>
<BR><H2><DIV ALIGN="CENTER"><A HREF="index.php">zur&uuml;ck zur Startseite</A></DIV></H2><BR>
<HR><BR>
<DIV ALIGN="CENTER">
<TABLE BORDER="0"><COLGROUP WIDTH="15%" SPAN="5"></COLGROUP>
<TR><TD><DIV ALIGN="CENTER"><A HREF="<?PHP print $PHP_SELF; ?>?prot=nutzer">pers&ouml;nlich</A></DIV></TD>
<TD><DIV ALIGN="CENTER"><A HREF="<?PHP print $PHP_SELF; ?>?prot=meldungen">Meldungen</A></DIV></TD>
<TD><DIV ALIGN="CENTER"><A HREF="<?PHP print $PHP_SELF; ?>?prot=fehler">Fehler</A></DIV></TD>
<TD><DIV ALIGN="CENTER"><A HREF="<?PHP print $PHP_SELF; ?>?prot=dialer">Einwahlprogramm</A></DIV></TD>
<TD><DIV ALIGN="CENTER"><A HREF="<?PHP print $PHP_SELF; ?>?prot=script">Programmausgabe</A></DIV></TD></TR>
</TABLE>
</DIV>
<?PHP
if (isset($HTTP_GET_VARS["prot"]))
{
$prot=$HTTP_GET_VARS["prot"];
print '<BR><HR><BR>';
if ($prot=="nutzer") print zeigeNutzerLog($NUTZER);
else print zeigeProtokoll($prot);
}
?>
</BODY>
</HTML>