\n"; } function getLastLogDate(){ global $connected,$table,$lastlogdate; echo "check logdate
"; if (!$connected) connect(); $result = pg_query("select max(date) from $table" ); if (!$result) { echo "first time.\n"; $lastlogdate=0;return; } while ($row = pg_fetch_row($result)) { print_r($row); echo "Val: $row[0]"; echo "
\n"; if (isset($row[0]) && ($row[0]!="") && ($row[0]!=0)) $lastlogdate=$row[0]; else $lastlogdate="1/1/1970"; return $lastlogdate; } return 0; } function connect(){ global $connected,$table,$lastlogdate; if ($connected) return true; $conn = pg_pconnect("dbname=rezo4 user=nsadmin"); if (!$conn) { echo "Une erreur s'est produite.\n"; return false; } $connected=true; return true; } function createTable (){ global $connected,$table,$lastlogdate; if (!$connected) connect(); $firsttime=true; $result = pg_query( "SELECT date FROM $table"); if (!$result) { echo "Essaye de créer la table.\n"; $query=" CREATE TABLE $table ( host varchar(40), misc1 varchar(40), misc2 varchar(40), date timestamp, url varchar(1400), code1 integer, code2 integer, refer varchar(1400), csoft varchar(1400), extra varchar(4000), userid varchar(1400), community varchar(1400));"; echo "$query"; $result = pg_query( $query); if (!$result) { echo "Impossible de créer la table
.\n"; return false; } } echo "Table crée
.\n"; return true; } function _clean(&$value){ //echo "value=$value ->"; $value=preg_replace("/'/","",$value); $value=substr($value,0,1400); //$value=preg_replace("/\/d.c\//","dec",$value); //echo "value=$value
"; return $value; } function pg_store($array){ global $table,$lastlogdate; //echo strtotime($lastlogdate)." > ".getTime($array['date'])."
"; if (strtotime($lastlogdate)>getTime($array['date'])) { echo "Skip entry
"; return; } $firsttime=true; $query="INSERT INTO $table ("; foreach ( $array as $key => $value ){ if (!$firsttime) $query.=","; else $firsttime=false; $query.=" $key"; } $query.=" ) VALUES ( "; $firsttime=true; foreach ( $array as $key => $value ){ $value=_clean($value); if (!$firsttime) $query.=","; else $firsttime=false; $query.="'$value'"; } $query.=" ) ; "; //echo "$query.\n"; $result = pg_query($query); if (!$result) { echo "eh merde $query.\n"; exit; } /*while ($row = pg_fetch_row($result)) { echo "Auteur: $row[0] E-mail: $row[1]"; echo "
\n"; }é */ } function storeResults($result){ if (isset($result) && (count($result))) { /* foreach ($result as $key => $value) { $value=preg_replace("/'/","",$value); $value=preg_replace("/déc/","dec",$value); //echo "$key => $value
"; }*/ //echo "----------------------------------------------------------------------------------------------
"; pg_store($result); } } function parseLine($line){ //10.0.0.122 - - [05/mar/2006:11:52:48 +0000] "GET /images/ic_entr_off.gif HTTP/1.1" 200 67 "http://10.0.0.122/default.css" "Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.1) Gecko/20060224 Ubuntu/dapper Firefox/1.5.0.1" "859925" "community_id=0" $nbres=preg_match ( // 1 2 3 4 5 6 7 8 9 10 11 // host - - Date URL code1 code2 refer csoft userid community '/^(\S+) (\S+) (\S+) \[(.+)\] \"(.+)\" (\S+) (\S+) (\S+) \"(.*)\" \"(.*)\" \"(.*)\"/' , $line , $match ); if ($nbres){ $result=array(); $result['host'] = $match[1]; $result['misc1'] = $match[2]; $result['misc2'] = $match[3]; $result['date'] = $match[4]; $result['url'] = $match[5]; $result['code1'] = $match[6]; $result['code2'] = $match[7]; $result['refer'] = $match[8]; $result['csoft'] = $match[9]; $result['userid'] = $match[10]; $result['community'] = $match[11]; return $result; } else{ //62.108.229.106 - - [20/Dec/2005:02:16:14 +0000] "GET //cgi-bin/awstats/awstats.pl HTTP/1.1" 200 26 "" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)" - $nbres=preg_match ( // 1 2 3 4 5 6 7 8 9 // host - - Date URL code1 code2 refer csoft '/^(\S+) (\S+) (\S+) \[(.+)\] \"(.+)\" (\S+) (\S+) (\S+) \"([^\"]*)\" (.*)/' , $line , $match ); if ($nbres){ $result=array(); $result['host'] = $match[1]; $result['misc1'] = $match[2]; $result['misc2'] = $match[3]; $result['date'] = $match[4]; $result['url'] = $match[5]; $result['code1'] = $match[6]; $result['code2'] = $match[7]; $result['refer'] = $match[8]; $result['csoft'] = $match[9]; $result['extra'] = $match[10]; /*pour le 10 "ad_session_id=12706407%2c859925+%7b69+1135084478+F413E1B3DE84DEE4BEF7E577E1BC746EDAABCBC8%7d; PPA_ID=de3c7d1bbb570d6cb0dfab3f14dba415; user_session_id=585; TreeMenuBranchStatus=objTreeMenu_1_node_1_2_3"*/ return $result; } } } function parseLog($filename){ //$filename=preg_replace("/:/","\:",$filename); echo "Parsing:$filename
"; if (preg_match('/gz$/',$filename)) $handle = gzopen($filename, "r"); else $handle = fopen("$filename", "r"); if ($handle) { while (!feof($handle)) { $buffer = fgets($handle); //echo "Analyse $buffer
\n"; storeResults(parseLine ($buffer)); } //echo "-----------1) Failed to parse $filename finished
"; fclose($handle); }else echo "-----------2) Failed to parse $filename
"; } function parseAll(){ dropTable(); createTable(); getLastLogDate(); echo "---->$lastlogdate
"; //parseLog("/var/log/aolserver4/rezo-access.log.2005-12-24-00_00");exit; $res=array(); exec("/var/log/aolserver4/cleanlog",$res); exec("ls -lha /var/log/aolserver4| grep rezo-acc | sort -k 6 | sed -re 's/.* (.*)$/\\1/'",$res); //print_r($res);exit; foreach($res as $key => $value){ //$value=preg_replace("/:/","\:",$value); echo "



\n"; parseLog("/var/log/aolserver4/".$value); } } function getUsername($uid){ if ((!$uid)||($uid=='')||($uid==0)) return; global $connected,$table,$lastlogdate; if (!$connected) connect(); $result = pg_query(" select first_names,last_name ,title from persons where person_id=$uid" ); while ($row = pg_fetch_row($result)) { //print_r($row); echo "$row[0],$row[1],$row[2]"; } } function getVisitedPage($uid){ if ((!$uid)||($uid=='')||($uid==0)) return; global $connected,$table,$lastlogdate; if (!$connected) connect(); $result = pg_query("select distinct url from $table where userid=$uid" ); //$result = pg_query("select distinct url from aol_access_log where userid=859925;"); echo "ap"; while ($row = pg_fetch_row($result)) { if ($row[0]!=''){ echo "URL: $row[0]"; //getUsername($row[0]); getenteprise($row[0]); echo "
\n"; } } return 0; } function getenteprise($url,$id=-1){ if ($id==-1) { $nbres=preg_match ( //rezo/entreprise/entreprise-view?group_id=754452 '/entreprise.*group_id=([0-9]*).*$/' , $url , $match ); if (!$nbres) return; $id = $match[1]; } //echo "
Entid=$id
"; if ((!$id)||($id=='')||($id==0)) return; global $connected,$table,$lastlogdate; if (!$connected) connect(); $result = pg_query(" select ent_name,ent_country_iso2 ,ent_adress1,ent_city,ent_city from entreprise_ext where group_id=$id" ); while ($row = pg_fetch_row($result)) { //print_r($row); echo "$row[0],$row[1],$row[2],$row[3],$row[4]"; } return $id; /*group_id ent_name ent_country_iso2 ent_usp ent_adress1 ent_adress2 ent_cp ent_city ent_canton_id ent_url ent_phone_number nt_fax_number ent_mobile_number ent_email ent_capital ent_creation_date ent_activity_range ent_size_id ent_legal_id ent_domain_id ent_corporate_summary_mt ent_position ent_products_services ent_target ent_skills ent_reference ent_story ent_awards ent_press ent_have_logo ent_deleted ent_picture_title_1 ent_picture_title_2 ent_picture_title_3 ent_picture_comment_1 ent_picture_comment_2 ent_picture_comment_3 ent_picture_order_1 ent_picture_order_2 ent_picture_order_3 ent_page_creation_date ent_page_edition_date ent_page_visit_count */ } function getAllenterprisestat(){ global $connected,$table,$lastlogdate; $enterpriseList=array(); if (!$connected) connect(); $result = pg_query("select url,userid from $table where url LIKE '%entreprise%'" ); while ($row = pg_fetch_row($result)) { if ($row[0]!=''){ echo "URL: $row[0]"; //getUsername($row[0]); $id=getenteprise($row[0]); if ($id && $id<>0) $enterpriseList[$id][]=$row[1]; echo "
\n"; } } foreach ($enterpriseList as $key => $value) { echo "

For enterprise :"; getenteprise("",$key); echo "
"; echo "----------------------------------------------------------------------------
\n"; $user=array(); $anonymous=0; foreach ($value as $key1 => $value1) { if (!$value1 || $value1==0) $anonymous++; else $user[$value1]++; } if ($anonymous>0) echo " anonymous:($anonymous visits)
"; foreach ( $user as $key1 => $value1) { echo " ".getUsername($key1)." ($value1 visits)
" ; } } return 0; } function getLastConnections(){ global $connected,$table,$lastlogdate; if (!$connected) connect(); $result = pg_query("select distinct userid from $table " ); while ($row = pg_fetch_row($result)) { if (($row[0]!='') &&($row[0]!='0')){ echo "Val: $row[0]"; getUsername($row[0]); getVisitedPage($row[0]); echo "
\n"; } } return 0; } //parseAll(); getAllenterprisestat(); //getLastConnections(); ?>