Subversion Repositories ALCASAR

Compare Revisions

Ignore whitespace Rev 317 → Rev 318

/web/acc/admin/firewallEyes/include.php
0,0 → 1,139
<?php
/*
* firewall Eyes
* Copyright (C) 2004 Creabilis
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/
// ****************************************************************************
// return the regexp index for $columnName
// ****************************************************************************
function authenticationCheck() {
global $IPAuthentication,$allowedClientIP;
if ($IPAuthentication) {
if(!in_array($_SERVER["REMOTE_ADDR"],$allowedClientIP)) {
exit();
}
}
}
// ****************************************************************************
// return the regexp index for $columnName
// ****************************************************************************
function getIndexForColumn($columnName,$logFields) {
for($i=0; $i<count($logFields); $i++) {
if($logFields[$i][0]==$columnName) {
Return $logFields[$i][1];
}
}
}
// ****************************************************************************
// return true if all criteria matches
// ****************************************************************************
function criteriaMatches($criteria,$logFields,$infoTab,$exactSearch) {
$returnValue=true;
for($i=0; $i<count($logFields); $i++) {
$currentColumn=$logFields[$i][0];
$currentData=$infoTab[$logFields[$i][1]];
if($currentCriteria=$criteria[$currentColumn]) { // if criteria exists
// test
if(!searchString ($currentData,$currentCriteria,$exactSearch)) {
Return false;
}
}
}
Return $returnValue;
}
// ****************************************************************************
// return true strings founded
// ****************************************************************************
function searchString($haystack, $searchedWords,$exactSearch) {
if($searchedWords[0]=="!") {
$negate=true;
$searchedWords=substr($searchedWords,1);
}
$returnValue=false;
$wordTab=preg_split ("/[\s,]+/", $searchedWords);
if($wordTab) {
for($i=0; $i<count($wordTab); $i++) {
if($currentWord=$wordTab[$i]) {
// test
if(($exactSearch ? $haystack==$currentWord : stristr ($haystack,$currentWord))) {
$returnValue=true;
break;
}
}
}
}
if($negate) {
Return (!$returnValue);
} else {
Return $returnValue;
}
}
 
// ****************************************************************************
// change lines to resolved items
// ****************************************************************************
function resolvAll() {
global $logFields,$infoTab,$resolvIp,$resolvService,$indexForProtocol,$infoTabOriginal;
for($i=0; $i<count($logFields); $i++)
{
if($resolvIp) {
if($logFields[$i][3]=="ip" && !strstr($infoTab[$logFields[$i][1]],"255")) {
$infoTab[$logFields[$i][1]]=gethostbyaddr($infoTab[$logFields[$i][1]]);
}
}
if($resolvService) {
if($logFields[$i][3]=="service") {
$currentProtocolIndex=$indexForProtocol;
$service=getservbyport($infoTab[$logFields[$i][1]],strtolower($infoTab[$currentProtocolIndex]));
if($service) {
$infoTabOriginal[$logFields[$i][1]]=$infoTab[$logFields[$i][1]];
$infoTab[$logFields[$i][1]]=$service;
}
}
}
}
}
 
 
// ****************************************************************************
// fgetrs : read line and put pointer at the begining
// ****************************************************************************
function fgetrs($fileHandle) {
while (ftell($fileHandle)>=0) {
$char = fgetc($fileHandle);
if (ftell($fileHandle)==1) {
fseek ($fileHandle,-1,SEEK_CUR);
return $char.$line;
}
if ($char == "\n" || ftell($fileHandle)==1) {
fseek ($fileHandle,-2,SEEK_CUR);
return $line;
}
else {
fseek ($fileHandle,-2,SEEK_CUR);
$line = $char . $line;
}
}
return $line;
}
 
?>