Example #1
0
         }
         $Message = base64_encode(serialize($array));
         fwrite(STDOUT, "ERR message=\"{$Message}\"\n");
     }
     continue;
 }
 if ($GLOBALS["MACTUIDONLY"]) {
     if ($GLOBALS["DEBUG_LEVEL"] > 1) {
         WLOG("ASK: {$array["MAC"]} = ?");
     }
     $uid = GetMacToUid($array["MAC"]);
     if ($uid != null) {
         fwrite(STDOUT, "OK user={$uid}\n");
         continue;
     }
     $uid = trim(GetMacToUid($array["IPADDR"]));
     if ($uid == $array["IPADDR"]) {
         $uid = null;
     }
     if ($uid != null) {
         fwrite(STDOUT, "OK user={$uid}\n");
         continue;
     }
     fwrite(STDOUT, "OK\n");
     continue;
 }
 if (CheckQuota($array)) {
     fwrite(STDOUT, "OK\n");
 } else {
     WLOG("ERR \"Out of quota\"");
     fwrite(STDOUT, "ERR message=\"Out Of Quota\"\n");
Example #2
0
function parseURL($url)
{
    $uri = null;
    if ($GLOBALS["DEBUG_LEVEL"] > 1) {
        WLOG("parseURL():: Analyze [{$url}]");
    }
    $md5 = md5($url);
    $t = explode(" ", $url);
    while (list($index, $value) = each($t)) {
        if ($GLOBALS["DEBUG_LEVEL"] > 1) {
            WLOG("parseURL():: {$md5}: t[{$index}]={$value}");
        }
        $value = trim($value);
        if (preg_match("#^\\%[0-9]+#", trim($value))) {
            $t[$index] = null;
        }
        if ($value == "-") {
            $t[$index] = null;
        }
    }
    $GLOBALS["CACHE_URI"][$md5]["LOGIN"] = $t[0];
    $GLOBALS["CACHE_URI"][$md5]["IPADDR"] = $t[1];
    $GLOBALS["CACHE_URI"][$md5]["MAC"] = $t[2];
    $GLOBALS["CACHE_URI"][$md5]["FORWARDED"] = $t[3];
    $GLOBALS["CACHE_URI"][$md5]["RHOST"] = $t[4];
    if ($GLOBALS["CACHE_URI"][$md5]["MAC"] == "00:00:00:00:00:00") {
        $GLOBALS["CACHE_URI"][$md5]["MAC"] = null;
    }
    if (preg_match("#^www\\.(.+)\$#", $GLOBALS["CACHE_URI"][$md5]["RHOST"], $re)) {
        $GLOBALS["CACHE_URI"][$md5]["RHOST"] = $re[1];
    }
    if (preg_match("#(.+?):[0-9]+#", $GLOBALS["CACHE_URI"][$md5]["RHOST"], $re)) {
        $GLOBALS["CACHE_URI"][$md5]["RHOST"] = $re[1];
    }
    if (trim($GLOBALS["CACHE_URI"][$md5]["FORWARDED"]) != null) {
        $GLOBALS["CACHE_URI"][$md5]["IPADDR"] = $GLOBALS["CACHE_URI"][$md5]["FORWARDED"];
    }
    if ($GLOBALS["CACHE_URI"][$md5]["LOGIN"] == null) {
        if ($GLOBALS["CACHE_URI"][$md5]["MAC"] != null) {
            $GLOBALS["CACHE_URI"][$md5]["LOGIN"] = GetMacToUid($GLOBALS["CACHE_URI"][$md5]["MAC"]);
        }
    }
    if ($GLOBALS["CACHE_URI"][$md5]["LOGIN"] == null) {
        if ($GLOBALS["CACHE_URI"][$md5]["IPADDR"] != null) {
            $GLOBALS["CACHE_URI"][$md5]["LOGIN"] = GetMacToUid($GLOBALS["CACHE_URI"][$md5]["IPADDR"]);
        }
    }
    // %25 192.168.1.209 %25 - www.google-analytics.com
    // 10.0.0.32 00:1e:8c:a5:39:19 - crash-
    // 10.0.0.76 00:25:22:73:31:d5 -
    // 10.0.0.60 00:1d:92:70:96:70 - fbexternal-a.akamaihd.net:443
    return $GLOBALS["CACHE_URI"][$md5];
}
 }
 $clt_conn_tag = null;
 if ($GLOBALS["DEBUG_LEVEL"] > 0) {
     WLOG($url);
 }
 if (preg_match("#([0-9a-z:]+)#", $url, $re)) {
     $MAC = trim(strtolower($re[1]));
 }
 if ($GLOBALS["DEBUG_LEVEL"] > 0) {
     WLOG("ASK: {$MAC} = ?");
 }
 if ($MAC == "00:00:00:00:00:00") {
     fwrite(STDOUT, "OK\n");
     continue;
 }
 $uidArray = GetMacToUid($MAC);
 $uid = $uidArray["UID"];
 $ruleid = $uidArray["RULE"];
 if ($GLOBALS["DEBUG_LEVEL"] > 0) {
     WLOG("ASK: {$MAC} = {$uid}");
 }
 if ($uid == null) {
     fwrite(STDOUT, "OK\n");
     continue;
 }
 if ($uid != null) {
     $clt_conn_tag = " tag=HotspotRule{$ruleid} log=HotSpot,none";
     fwrite(STDOUT, "OK user={$uid}{$clt_conn_tag}\n");
     continue;
 }
 fwrite(STDOUT, "OK\n");
$max_execution_time = ini_get('max_execution_time');
WLOG("Starting... Log level:{$GLOBALS["DEBUG_LEVEL"]};");
while (!feof(STDIN)) {
    $url = trim(fgets(STDIN));
    if ($url == null) {
        continue;
    }
    $clt_conn_tag = null;
    if ($GLOBALS["DEBUG_LEVEL"] > 1) {
        WLOG($url);
    }
    $array = parseURL($url);
    if ($GLOBALS["DEBUG_LEVEL"] > 1) {
        WLOG("ASK: {$array["MAC"]} = ?");
    }
    $uid = GetMacToUid($array["MAC"], $array["IPADDR"]);
    $Group = GetGroup($array["MAC"], $array["IPADDR"]);
    if ($uid != null) {
        if ($Group != null) {
            $clt_conn_tag = " clt_conn_tag={$Group} log={$Group},none";
        }
        fwrite(STDOUT, "OK user={$uid}{$clt_conn_tag}\n");
        continue;
    }
    fwrite(STDOUT, "OK\n");
}
$distanceInSeconds = round(abs(time() - $GLOBALS["STARTIME"]));
$distanceInMinutes = round($distanceInSeconds / 60);
WLOG("v1.0:" . basename(__FILE__) . " die after ({$distanceInSeconds}s/about {$distanceInMinutes}mn)");
if (isset($GLOBALS["F"])) {
    @fclose($GLOBALS["F"]);