[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 4 /** 5 6 * affiche l'historique des connexions 7 * @Version $Id: show_histo.php 8559 2015-03-15 13:08:23Z plouf $ 8 9 * @Projet LCS / SambaEdu 10 11 * @auteurs Equipe Tice academie de Caen 12 * @auteurs jLCF >:> jean-luc.chretien@tice.ac-caen.fr 13 * @auteurs oluve olivier.le_monnier@crdp.ac-caen.fr 14 * @auteurs wawa olivier.lecluse@crdp.ac-caen.fr 15 16 * @Licence Distribue selon les termes de la licence GPL 17 18 * @note 19 20 */ 21 22 /** 23 24 * @Repertoire: parcs/ 25 * file: show_histo.php 26 27 28 */ 29 30 31 32 33 include "entete.inc.php"; 34 include "ldap.inc.php"; 35 include "ihm.inc.php"; 36 37 require_once ("lang.inc.php"); 38 bindtextdomain('se3-parcs',"/var/www/se3/locale"); 39 textdomain ('se3-parcs'); 40 41 42 $selectionne=isset($_GET['selectionne']) ? $_GET['selectionne'] : NULL; 43 $ipaddr=isset($_GET['ipaddr']) ? $_GET['ipaddr'] : NULL; 44 $cnx_start2=isset($_GET['cnx_start2']) ? $_GET['cnx_start2'] : NULL; 45 $cnx_start1=isset($_GET['cnx_start1']) ? $_GET['cnx_start1'] : NULL; 46 $cnx_start=isset($_GET['cnx_start']) ? $_GET['cnx_start'] : NULL; 47 $user=isset($_GET['user']) ? $_GET['user'] : NULL; 48 $mpenc=isset($_GET['mpenc']) ? $_GET['mpenc'] : NULL; 49 50 //aide 51 $_SESSION["pageaide"]="Informations_syst%C3%A8me#Historique"; 52 53 //debug_var(); 54 55 // Affichage du formulaire de saisie d'adresse IP 56 echo "<H1>".gettext("Historique des connexions")."</H1>"; 57 58 if ((is_admin("computers_is_admin",$login)=="Y") or (is_admin("parc_can_view",$login)=="Y") or (is_admin("parc_can_manage",$login)=="Y") or (is_admin("Annu_is_admin",$login)=="Y") or $login == $user) { 59 60 if ((is_admin("computers_is_admin",$login)=="N") and ((is_admin("parc_can_view",$login)=="Y") or (is_admin("parc_can_manage",$login)=="Y"))) { 61 echo "<h3>".gettext("Votre délégation a été prise en compte pour l'affichage de cette page.")."</h3>"; 62 $acces_restreint=1; 63 $list_delegate=list_parc_delegate($login); 64 if (count($list_delegate)>0) { 65 $delegate="yes"; 66 } 67 } else { 68 echo "<FORM action=\"show_histo.php\" method=\"GET\">\n"; 69 echo "<SELECT NAME=\"selectionne\" SIZE=\"1\" onchange=submit()>\n"; 70 71 echo "<option value=\"0\""; 72 if ((!isset($selectionne)) || ($selectionne=="0")) { echo " selected";} 73 echo ">".gettext("Sélectionner\n"); 74 echo "<option value=\"1\" "; 75 if ($selectionne=="1") { echo " selected"; } 76 echo ">".gettext("Par adresse IP\n"); 77 echo "<option value=\"2\""; 78 if ($selectionne=="2") { echo " selected"; } 79 echo ">".gettext("Par nom de machine\n"); 80 echo "<option value=\"3\""; 81 if ($selectionne=="3") { echo " selected"; } 82 echo ">".gettext("Par utilisateur\n"); 83 echo "</SELECT>\n"; 84 } 85 86 if ($selectionne=="1") { 87 if (($ipaddr==$REMOTE_ADDR) || ($ipaddr=="")) { $IP=$REMOTE_ADDR; } else { $IP=$ipaddr; } 88 echo " <INPUT TYPE=\"text\" NAME=\"ipaddr\"\n VALUE=\"$IP\" SIZE=\"12\">"; 89 } elseif ($selectionne=="2") { 90 echo " <INPUT TYPE=\"text\" NAME=\"mpenc\" VALUE=\"$mpenc\" SIZE=\"12\">"; 91 } elseif ($selectionne=="3") { 92 echo " <INPUT TYPE=\"text\" NAME=\"user\" VALUE=\"$user\" SIZE=\"12\">"; 93 } 94 echo " <input type=\"submit\" value=\"".gettext("Valider")."\">\n"; 95 echo "</FORM>\n"; 96 echo "<BR>"; 97 echo "<HR>"; 98 99 100 // Si recherche sur adresse IP 101 if (($selectionne=="1") && (isset($ipaddr))) { 102 // Affichage des renseignements sur la machine depuis la table connexions 103 echo "<BR>"; 104 echo gettext("Table des connexions sur l'adresse IP")." <STRONG><FONT color='red'>$ipaddr</FONT></STRONG>\n"; 105 if ("$smbversion"=="samba3") $smbsess=exec ("smbstatus |gawk -F' ' '{print \" \"$5\" \"$4}' |grep '($ipaddr)' |cut -d' ' -f3 |head -n1"); 106 else $smbsess=exec ("smbstatus |gawk -F' ' '{print \" \"$6\" \"$4}' |grep '($ipaddr)' |cut -d' ' -f3 |head -n1"); 107 108 if ($smbsess=="") echo "<P>".gettext("Aucune connexion en cours sur cette machine")."</P>\n"; 109 else { 110 $login = exec ("smbstatus | grep -v 'root' |gawk -F' ' '{print \" \"$4\" \"$2}' |grep ' $smbsess ' |cut -d' ' -f3 |head -n1"); 111 echo "<P><STRONG><FONT color='red'>$login</FONT></STRONG> ".gettext("est actuellement connecté sur cette machine")."</P>\n"; 112 } 113 114 if (! isset($cnx_start)) $cnx_start=0; 115 echo "<P><STRONG>".gettext("Etat des 10 dernières connexions sur la machine")."</STRONG></P>\n"; 116 $query=" select * from connexions where ip_address='$ipaddr' order by id desc limit "; 117 $query .= $cnx_start; 118 $query .= ",10"; 119 120 $result = mysql_query($query); 121 if (($result)) { 122 // Affichage des liens de navigation 123 if ($cnx_start < 10) { $cnx_start1=0; $cnx_start2=$cnx_start+10; } 124 else if (mysql_num_rows($result)==0) { $cnx_start2=$cnx_start; $cnx_start1=$cnx_start-10; } 125 else { $cnx_start1=$cnx_start-10; $cnx_start2=$cnx_start+10; } 126 echo "<TABLE width='100%'><TR><TD WIDTH='50%'>"; 127 if ($cnx_start >= 10) echo "<A HREF='show_histo.php?ipaddr=$ipaddr&cnx_start=$cnx_start1&selectionne=1'><-- ".gettext("Voir les 10 connexions précédentes")."</A> "; 128 echo "</TD><TD>"; 129 if ($cnx_start2 != $cnx_start) echo "<A HREF='show_histo.php?ipaddr=$ipaddr&cnx_start=$cnx_start2&selectionne=1'>".gettext("Voir les 10 connexions suivantes")." --></A>\n"; 130 echo "</TD></TR></TABLE>\n"; 131 // affichage de la table connexions 132 echo "<TABLE align='center' border='1'>\n"; 133 echo "<TR><TD class='menuheader'>".gettext("Utilisateur connecté")."</TD><TD class='menuheader'>".gettext("Nom machine")."</TD><TD class='menuheader'>".gettext("Date/Heure de connexion")."</TD><TD class='menuheader'>".gettext("Date/Heure de déconnexion")."</TD></TR>"; 134 while ($r=mysql_fetch_array($result)) { 135 //echo "<TR align='center'><TD>".$r["username"]."</TD>\n"; 136 echo "<TR align='center'><TD><A HREF='show_histo.php?selectionne=3&user=".$r["username"]."'>".$r["username"]."</A></TD>\n"; 137 //echo "<TD>".$r["netbios_name"]."</TD>\n"; 138 echo "<TD><A HREF='show_histo.php?selectionne=2&mpenc=".$r["netbios_name"]."'>".$r["netbios_name"]."</A></TD>\n"; 139 echo "<TD>".$r["logintime"]."</TD>\n"; 140 echo "<TD>".$r["logouttime"]."</TD></TR>\n"; 141 } 142 echo "</TABLE>\n"; 143 } else echo gettext("erreur lors de la lecture de la base se3"); 144 145 } 146 147 148 149 150 // Affichage des renseignements sur l'utilisateur 151 152 if (($selectionne=="3") && (isset($user))) { 153 if ("$smbversion" == "samba3") exec ("smbstatus -b -u $user |awk 'NF>4 {print $1}'",$arr_pid); 154 else exec ("smbstatus -b -u $user |gawk -F' ' '{print $1}'",$arr_pid); 155 $nbmach=count($arr_pid); 156 if ("$smbversion" == "samba3") $nbmach+=5; 157 if ($nbmach>5) { 158 echo "<P><STRONG><FONT color='red'>"; 159 echo $nbmach-5; 160 // echo "</FONT></STRONG> connexion(s) en cours sous le login <STRONG><FONT color='red'>$user</FONT></STRONG> sur "; 161 echo "</FONT></STRONG>".gettext(" connexion(s) en cours sous le login")." <A HREF='../annu/people.php?uid=$user'><STRONG><FONT color='red'><U>$user</U></FONT></STRONG></A>".gettext(" sur "); 162 for ($i=4; $i<=$nbmach; $i++) { 163 if ("$smbversion" == "samba3") { 164 $pid=$arr_pid[$i-4]; 165 $machine=exec ("smbstatus |gawk -F' ' '{print \" \"$1\" \"$4}' |grep ' $pid ' |cut -d' ' -f3 |head -n1"); 166 } else { 167 $pid=$arr_pid[$i]; 168 $machine=exec ("smbstatus |gawk -F' ' '{print \" \"$4\" \"$5}' |grep ' $pid ' |cut -d' ' -f3 |head -n1"); 169 } 170 if (is_admin("computers_is_admin",$login)=="Y") echo "<A HREF='show_histo.php?selectionne=2&mpenc=".urlencode($machine)."'><U>$machine</U></A> "; 171 else echo "<STRONG>$machine</STRONG> "; 172 } 173 } else { 174 echo "<BR>"; 175 //echo "Aucune connexion en cours sous le login <STRONG><FONT color='red'>$user</FONT></STRONG>"; 176 echo gettext("Aucune connexion en cours sous le login"); 177 echo " <A HREF='../annu/people.php?uid=$user'><STRONG><FONT color='red'><U>$user</U></FONT></STRONG></A>"; 178 } 179 echo "\n"; 180 181 if (! isset($cnx_start)) $cnx_start=0; 182 echo "<P><STRONG>".gettext("Etat des 10 dernières connexions de l'utilisateur")." $user</STRONG></P>\n"; 183 $query=" select * from connexions where username='$user' order by id desc limit "; 184 $query .= $cnx_start; 185 $query .= ",10"; 186 187 $result = mysql_query($query); 188 if (($result)) { 189 // Affichage des liens de navigation 190 if ($cnx_start < 10) { $cnx_start1=0; $cnx_start2=$cnx_start+10; } 191 else if (mysql_num_rows($result)==0) { $cnx_start2=$cnx_start; $cnx_start1=$cnx_start-10; } 192 else { $cnx_start1=$cnx_start-10; $cnx_start2=$cnx_start+10; } 193 echo "<TABLE width='100%'><TR><TD WIDTH='50%'>"; 194 if ($cnx_start >= 10) echo "<A HREF='show_histo.php?user=$user&cnx_start=$cnx_start1&selectionne=3'><-- ".gettext("Voir les 10 connexions précédentes")."</A> "; 195 echo "</TD><TD>"; 196 if ($cnx_start2 != $cnx_start) echo "<A HREF='show_histo.php?user=$user&cnx_start=$cnx_start2&selectionne=3'>".gettext("Voir les 10 connexions suivantes")." --></A>\n"; 197 echo "</TD></TR></TABLE>\n"; 198 // affichage de la table connexions 199 echo "<TABLE align='center' border='1'>\n"; 200 echo "<TR><TD class='menuheader'>".gettext("Nom machine")."</TH><TD class='menuheader'>".gettext("Adresse IP")."</TH>"; 201 echo "<TD class='menuheader'>".gettext("Date/Heure de connexion")."</TH><TD class='menuheader'>".gettext("Date/Heure de déconnexion")."</TH></TR>"; 202 while ($r=mysql_fetch_array($result)) { 203 // echo "<TR align='center'><TD>".$r["netbios_name"]."</TD>\n"; 204 echo "<TR align='center'><TD>"; 205 if (is_admin("computers_is_admin",$login)=="Y") { echo "<A HREF='show_histo.php?selectionne=2&mpenc=".$r["netbios_name"]."'>"; } 206 echo $r["netbios_name"]; 207 if (is_admin("computers_is_admin",$login)=="Y") echo "</A>"; 208 echo "</TD>\n"; 209 //echo "<TD>".$r["ip_address"]."</TD>\n"; 210 echo "<TD>"; 211 if (is_admin("computers_is_admin",$login)=="Y") { echo "<A HREF='show_histo.php?selectionne=1&ipaddr=".$r["ip_address"]."'>"; } 212 echo $r["ip_address"]; 213 if (is_admin("computers_is_admin",$login)=="Y") {"</A>"; } 214 echo "</TD>\n"; 215 echo "<TD>".$r["logintime"]."</TD>\n"; 216 echo "<TD>".$r["logouttime"]."</TD></TR>\n"; 217 } 218 echo "</TABLE>\n"; 219 } else echo gettext("erreur lors de la lecture de la base se3"); 220 } 221 222 223 // Affichage par nom de la machine 224 225 // Affichage des renseignements sur la machine depuis la table connexions 226 227 if (($selectionne=="2") && (isset($mpenc))) { 228 echo "<p><strong>$mpenc</strong> <a href='cherche_machine.php?mpenc=$mpenc' title='Voir les parcs de la machine.'><img src='../elements/images/computer.png' /></a></p>"; 229 $mp=urldecode($mpenc); 230 $mp_curr=search_machines("(&(cn=$mp)(objectClass=ipHost))","computers"); 231 echo "<P><STRONG>".gettext("Adresse IP inscrite dans l'annuaire:")." </STRONG><FONT color='red'>".$mp_curr[0]["ipHostNumber"]."</FONT></P>\n"; 232 if ("$smbversion"=="samba3") $smbsess=exec ("smbstatus |gawk -F' ' '{print \" \"$5\" \"$4\" \"}' |grep ' $mp ' |cut -d' ' -f2 |head -n1"); 233 else $smbsess=exec ("smbstatus |gawk -F' ' '{print \" \"$5\" \"$4}' |grep ' $mp ' |cut -d' ' -f3 |head -n1"); 234 if ($smbsess=="") echo "<P>".gettext("Aucune connexion en cours sur cette machine")."</P>\n"; 235 else { 236 if ("$smbversion"=="samba3") $login = exec ("smbstatus | grep -v 'root' |gawk -F' ' '{print \" \"$5\" \"$2}' |grep ' $smbsess ' |cut -d' ' -f3 |head -n1"); 237 else $login = exec ("smbstatus | grep -v 'root' |gawk -F' ' '{print \" \"$4\" \"$2}' |grep ' $smbsess ' |cut -d' ' -f3 |head -n1"); 238 // echo "<P><STRONG><FONT color='red'>$login</FONT></STRONG> est actuellement connecté sur cette machine</P>\n"; 239 echo "<P><STRONG><FONT color='red'><A HREF='show_histo.php?selectionne=3&user=$login'>$login</A></FONT></STRONG>".gettext(" est actuellement connecté sur cette machine")."</P>\n"; 240 } 241 242 if (! isset($cnx_start)) $cnx_start=0; 243 echo "<P><STRONG>".gettext("Etat des 10 dernières connexions sur la machine")."</STRONG></P>\n"; 244 $query=" select * from connexions where netbios_name='$mp' order by id desc limit "; 245 $query .= $cnx_start; 246 $query .= ",10"; 247 248 $result = mysql_query($query); 249 if (($result)) { 250 // Affichage des liens de navigation 251 if ($cnx_start < 10) { $cnx_start1=0; $cnx_start2=$cnx_start+10; } 252 else if (mysql_num_rows($result)==0) { $cnx_start2=$cnx_start; $cnx_start1=$cnx_start-10; } 253 else { $cnx_start1=$cnx_start-10; $cnx_start2=$cnx_start+10; } 254 echo "<TABLE width='100%'><TR><TD WIDTH='50%'>"; 255 if ($cnx_start >= 10) echo "<A HREF='show_histo.php?mpenc=$mpenc&cnx_start=$cnx_start1&selectionne=2'><-- ".gettext("Voir les 10 connexions précédentes")."</A> "; 256 echo "</TD><TD>"; 257 if ($cnx_start2 != $cnx_start) echo "<A HREF='show_histo.php?mpenc=$mpenc&cnx_start=$cnx_start2&selectionne=2'>".gettext("Voir les 10 connexions suivantes")." --></A>\n"; 258 echo "</TD></TR></TABLE>\n"; 259 // affichage de la table connexions 260 echo "<TABLE align='center' border='1'>\n"; 261 echo "<TR><TD class='menuheader'>".gettext("Utilisateur connecté")."</TD><TD class='menuheader'>".gettext("Adresse IP")."</TD><TD class='menuheader'>".gettext("Date/Heure de connexion")."</TD><TD class='menuheader'>".gettext("Date/Heure de déconnexion")."</TD></TR>"; 262 while ($r=mysql_fetch_array($result)) { 263 // echo "<TR align='center'><TD>".$r["username"]."</TD>\n"; 264 echo "<TR align='center'><TD><A HREF='show_histo.php?selectionne=3&user=".$r["username"]."'>".$r["username"]."</A></TD>\n"; 265 //echo "<TD>".$r["ip_address"]."</TD>\n"; 266 echo "<TD><A HREF='show_histo.php?selectionne=1&ipaddr=".$r["ip_address"]."'>".$r["ip_address"]."</A></TD>\n"; 267 echo "<TD>".$r["logintime"]."</TD>\n"; 268 echo "<TD>".$r["logouttime"]."</TD></TR>\n"; 269 } 270 echo "</TABLE>\n"; 271 } else echo gettext("erreur lors de la lecture de la base se3"); 272 273 } 274 275 276 277 } else { 278 echo "Vous n'avez pas les droits pour accéder à cette page"; 279 } 280 281 282 include ("pdp.inc.php"); 283 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |