ip_check/index.php

120 lines
3.7 KiB
PHP

<?php
define ("DBHOST", "localhost");
define ("DBUSER", "squid");
define ("DBPASS", "squid");
define ("DBDATABASE", "squid");
mysql_pconnect(DBHOST, DBUSER, DBPASS) or die("");
mysql_select_db(DBDATABASE) or die("");
?>
<html><head>
<link rel="stylesheet" type="text/css" href="format.css">
</head><body bgcolor="#FFFFFF">
<h1>Squid ACLs</h1>
<?php
if (isset($_GET['del'])) {
$sql= "DELETE FROM acl WHERE id = '".$_GET['del']."'";
mysql_query($sql);
}
//
if (isset($_POST['form'])) {
$form= $_POST['form'];
// ACL targets abpruefen
if ($form['acl'] != 1 && $form['acl'] != 2)
$formerr= "Unbekanntes ACL Target.";
// IP aufspalten
$ip= explode("/", trim($form['fullip']));
$iplong= ip2long($ip[0]);
// IP gueltig?
if (trim($ip[0]) == long2ip($iplong)) {
$form['ip']= long2ip($iplong);
} else {
$form['ip']= trim($ip[0]);
$formerr= "Ung&uuml;ltige IP.";
}
// mask gueltig?
if (isset($ip[1])) {
$form['mask']= trim($ip[1]);
if ($ip[1] <= 0 || $ip[1] > 32) {
$formerr= "Ung&uuml;ltige Netmask.";
}
} else {
$form['mask']= 32;
}
// wenn kein fehler, dann in DB einfuegen
if (!isset($formerr)) {
$sql= "INSERT INTO acl SET ".
"flags = '".$form['acl']."', ".
"ip = INET_ATON('".$form['ip']."'), ".
"mask = '".$form['mask']."', ".
"url = '".$form['url']."', ".
"info = '".$form['info']."'";
mysql_query($sql);
unset($_POST);
} else {
echo '<p class="fehler">'.$formerr.'</p>';
}
}
// keine form daten vorhanden -> defaults
if (!isset($_POST['form'])) {
$form= array("acl" => 2, "ip" => "", "mask" => 32, "url" => "", "info" => "");
}
?>
<table cellspacing="0" cellpadding="0">
<tr><td class="navbar">
<table width="100%" cellspacing="1" cellpadding="3">
<tr>
<td class="navbar" align="center"><b>ACL</b></td>
<td class="navbar" align="center"><b>IP / Mask</b></td>
<td class="navbar" align="center"><b>URL</b></td>
<td class="navbar" align="center"><b>Beschreibung</b></td>
<td class="navbar" align="center"><b>X</b></td>
</tr>
<?php
$aclArr= array(1 => "ALLOW", 2 => "DENY");
$sql= "SELECT id, flags, INET_NTOA(ip) AS ip, mask, url, info FROM acl ORDER BY ip, url";
$res= mysql_query($sql);
$tdclass= "hblau";
while ($row= mysql_fetch_assoc($res)) {
echo '<tr><td class="'.$tdclass.'" align="center">'.$aclArr[$row['flags']].'</td>'."\n".
'<td class="'.$tdclass.'">'.$row['ip'].(($row['mask'] != 32) ? ' /'.$row['mask'] : '').'</td>'."\n".
'<td class="'.$tdclass.'"><a href="http://'.$row['url'].'" target="_blank">'.$row['url'].'</td>'."\n".
'<td class="'.$tdclass.'">'.$row['info'].'</td>'."\n".
'<td class="'.$tdclass.'" align="center"><a href="'.$_SERVER['PHP_SELF'].'?del='.$row['id'].'"><font color="#ff0000">DEL</font></td></tr>'."\n";
$tdclass= ($tdclass == "hblau") ? "dblau" : "hblau";
}
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="squid">
<tr><td class="dblau"><select name="form[acl]">
<option value="1" <?php if ($form['acl'] == 1) echo "selected"; ?>>ALLOW</option>
<option value="2" <?php if ($form['acl'] == 2) echo "selected"; ?>>DENY</option>
</select></td>
<td class="dblau"><input type="text" name="form[fullip]" value="<?php echo $form['ip'].(($form['mask'] != 32) ? ' /'.$form['mask'] : '') ?>"></td>
<td class="dblau"><input type="text" name="form[url]" value="<?php echo $form['url'] ?>"></td>
<td class="dblau"><input type="text" name="form[info]" value="<?php echo $form['info'] ?>"></td>
<td class="dblau"><input type="submit" value="ADD"></td></tr>
</form>
</table></td></tr></table>
</body></html>