Error! The user-agents table does not exist.\n"; echo "Please run the script before trying to produce a report."; exit(); } $query = "SELECT * FROM `uaSniffer` ORDER BY `ua_ID` ASC "; $result = mysql_query($query) or die("Query failed"); $num=mysql_numrows($result); $i=0; $uas=0; $ual=0; $uaa=0; $uass=""; $uasstr=""; $ualstr=""; $alphanumeric = " qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789"; $nonalphanumeric = ""; echo "
\n";
    echo "/***********************************************************\n";
    echo " * User Agent Sniffer Report - ".date("d/m/Y")."                  *\n";
    echo " * ======================================================= *\n";
    echo " *                                                         *\n";
    echo " * Description:                                            *\n";
    echo " * This report has been generated by User Agent Sniffer,   *\n";
    echo " * a PHP script developed to capture unique user agent     *\n";
    echo " * strings from web browsers, bots and other software that *\n";
    echo " * cares to identify itself. More information about this   *\n";
    echo " * script can be found at:                                 *\n";
    echo " * http://crunchbang.org/projects/user-agent-sniffer/      *\n";
    echo " ***********************************************************/\n\n";
    while ($i < $num) {
        $ua=mysql_result($result,$i,"ua_string");
        $uasl=strlen($ua);
        if($i == 0){
            $uas = $uasl;
        }
        if($uasl < $uas){
            $uas = $uasl;
            $uasstr = $ua;
        }
        if($uasl > $ual){
            $ual = $uasl;
            $ualstr = $ua;
        }
        $uaa=$uaa+$uasl;
        $sp = 0;
    	while ($sp < $uasl){
    	    $char = substr($ua,$sp,1);
    		if (!strstr($alphanumeric, $char) and !strstr($nonalphanumeric, $char)) {
    		$nonalphanumeric=$nonalphanumeric.$char;
    		}
    	$sp++;
    	}
        $i++;
        $uass=$uass."  ".$i.". ".$ua."\n";
    }
    echo " Total Unique User Agents: ".$i."\n";
    echo " Length of Shortest User Agent: ".$uas."\n";
    echo " Shortest User Agent: ".$uasstr."\n";
    echo " Length of Longest User Agent: ".$ual."\n";
    echo " Longest User Agent: ".$ualstr."\n";
    echo " Average Length of User Agents: ".$uaa/$i."\n";
    echo " Non-Alphanumeric Characters Found: ".$nonalphanumeric."\n";
    echo " List of captured user agents:\n\n";
    echo $uass;
    echo "
"; $alphanumeric=""; $nonalphanumeric=""; $uass=""; mysql_close($link); exit(); } /** * If not running in report mode, attempt to sniff user agent */ if(!isset($_COOKIE["uaSniffer"])){ $ua = addslashes($_SERVER['HTTP_USER_AGENT']); $link = mysql_connect(UAS_CONF_DB_ADDRESS, UAS_CONF_DB_USERNAME, UAS_CONF_DB_PASSWORD) or die("Error. Failed to connect to database."); mysql_select_db(UAS_CONF_DB_NAME) or die("Error. Could not select database."); if (!table_exists("uaSniffer", UAS_CONF_DB_NAME)) { mysql_query('CREATE TABLE `uaSniffer` ( `ua_ID` INT NOT NULL AUTO_INCREMENT , `ua_string` VARCHAR( 255 ), UNIQUE ( `ua_ID` ) )') or die("Create table Error: ".mysql_error()); } $query = "SELECT * FROM `uaSniffer` WHERE `ua_string` = '".$ua."'"; $result = mysql_query($query) or die("Query failed"); $num=mysql_numrows($result); mysql_free_result($result); if($num == 0){ $query = "INSERT INTO `uaSniffer`(ua_string) values('".$ua."')"; mysql_query($query, $link) or die("INSERT ERROR: ".mysql_error() ); } mysql_close($link); setcookie("uaSniffer", "sniffed",time()+60*60*24*365,"/",""); } /** * Functions */ function table_exists($table,$db) { $tables = mysql_list_tables($db); while (list($temp) = mysql_fetch_array($tables)) { if($temp == $table) { return TRUE; } } return FALSE; } ?>