http://proxy.sci.com/lightsquid/it.php
lightsquid : lightsquid edit file and use php+mysql เพื่อนำมาแสดง ว่า user นั้นใช้ที่ ip เครื่องใครบ้างตามวัน
- ไฟล์อยู่ที่ sftp://sa@192.168.2.106/usr/local/lightsquid/it.php
- แก้ไฟล์ html สำหรับแสดงผลหน้า web ที่ /usr/local/lightsquid/tpl/base เพิ่มข้อความแก้ไขรูปแบบของ html
เช่น index.html เพื่อให้มี link คลิกไปดูหน้า php ที่สร้างขึ้นได้ เพิ่ม
- <TD width="33%" align="center"><FONT size="-1"><A HREF="it.php">CHECK IP</A></FONT></TD>
- ที่ folder ip2name ให้ copy ไฟล์ ip2name.simple --> ip2name.simpleNew แก้ Code เป็นดังนี้เพื่อให้ Show IP และชื่อร่วมกัน (ไม่ใช้ไฟล์เดิมร่วมกันเพราะมีปัญหาเรื่อง Link และไม่สามารถดูภาพรวมทั้งหมดเฉพาะชื่อได้จึงต้องแยก)
Code :
- #contributor: esl
- #do nothing
- #simple version
- sub StartIp2Name() {
- }
- sub Ip2Name($$$) {
- # $Lhost,$user,$Ltimestamp
- my $Lhost=shift;
- my $user =shift;
- #return $user.":".$Lhost
- return $user.":".$Lhost if ($user ne "-"); #return user if defined !!!!!
- #return $user if ($user ne "-"); #return user if defined !!!!!
- return $Lhost;
- }
- sub StopIp2Name() {
- }
- #warning !!!
- 1;
- ที่ Folder lightsquid ให้ Copy ไฟล์ lightparser.pl และ lightsquid.cfg เป็นอีก 1 ชุดเช่นเป็น it_lightsquid.cfg และ it_lightparser.pl เป็นต้น
- สร้าง Folder สำหรับเก็บ report ใหม่แยกออกมาจาก report เดิมเช่น folder it เป็นต้น
- แก้ไฟล์ it_lightsquid.cfg
ใส่ที่เก็บ report ใหม่
- #path to report folder
- แก้ ip2name เป็น ตัวใหม่ที่เราสร้างขึ้น
- [code]$reportpath ="/usr/local/lightsquid/it";[/code]
- #ip2name.abils ip2name.demo ip2name.dhcp ip2name.dns ip2name.ip ip2name.list ip2name.simple ip2name.smb ip2name.squidauth ip2name.squidlist ip2name.squidlist2
- $ip2name="simpleNew";
-แก้ it_lightparser.pl ตรง require cfg ไฟล์ให้ไปเรียกไฟล์ cfg ที่แก้ไขใหม่
- require "it_lightsquid.cfg";
- Run คำสั่ง สร้าง Report โดยใช้คำสั่ง
/usr/local/lightsquid/it_lightparser.pl
- นำคำสั่งไปใส่ใน crontab -e เพื่อจะให้ run auto กำหนดวันตามที่เราต้องการ เช่น
- 0 0,13 * * * /usr/local/lightsquid/it_lightparser.pl
- จะได้ไฟล์แยกเป็นวันที่ใน Folder it และใน folder จะมีไฟล์ IP และชื่อผู้ใช้ จากนั้นเขียนโปรแกรม อ่านชื่อไฟล์ ชื่อ Folder เก็บลงฐานข้อมูลเพื่อนำมาแสดงในหน้า php
it.php
- <?php
- /*
- $path = "/usr/local/lightsquid/it/";
- $results = scandir($path);
- foreach ($results as $result) {
- if ($result != "." && $result != "..") {
- echo $result . "<br>";
- }
- }
- */
- /*$dir = "/usr/local/lightsquid/it/20160727/";
- // Open a directory, and read its contents
- if (is_dir($dir)){
- if ($dh = opendir($dir)){
- while (($file = readdir($dh)) !== false){
- if (strpos($file, ':') !== false) {
- echo $file . "<br>";
- }
- }
- closedir($dh);
- }
- }*/
- include("it_db.php");
- $folder = "/usr/local/lightsquid/it/";
- $refolder = scandir($folder);
- foreach ($refolder as $namefolder) {
- if ($namefolder != "." && $namefolder != "..") {
- //echo $namefolder . "<br>";
- $SQL ="SELECT * FROM it_report.check_date WHERE check_date = '".$namefolder."'";
- $Result = $mysqli->query($SQL);
- //echo $SQL;
- $i = 0;
- while($Row = $Result->fetch_assoc()){
- $i++;
- }
- //$x = 1;
- //echo $i;
- //exit;
- //echo $i;
- if($i == 0){
- ///Insert Date New///
- $SQL = "INSERT INTO it_report.check_date(check_date) VALUES ('".$namefolder."')";
- $mysqli->query($SQL);
- ///Insert Trans New///
- $dir = "/usr/local/lightsquid/it/".$namefolder."/";
- // Open a directory, and read its contents
- if (is_dir($dir)){
- if ($dh = opendir($dir)){
- while (($file = readdir($dh)) !== false){
- if (strpos($file, ':') !== false) {
- //echo $x.":".$file . "<br>";
- list($user, $ip) = explode(":", $file);
- $SQL = "INSERT INTO it_report.check_list(list_user,list_ip,list_date) VALUES ('".$user."','".$ip."','".$namefolder."')";
- $mysqli->query($SQL);
- //echo $SQL;
- //$x++;
- } //Close IF
- } //Close While
- closedir($dh);
- } //Close IF
- } //Close IF
- } else {
- ///Insert Trans Is Not Same.///
- $dir = "/usr/local/lightsquid/it/".$namefolder."/";
- // Open a directory, and read its contents
- //echo $dir;
- if (is_dir($dir)){
- if ($dh = opendir($dir)){
- while (($file = readdir($dh)) !== false){
- if (strpos($file, ':') !== false) {
- //echo $file . "<br>";
- list($user, $ip) = explode(":", $file);
- $SQL = "INSERT INTO it_report.check_list(list_user,list_ip,list_date) VALUES ('".$user."','".$ip."','".$namefolder."')";
- //$SQL .= " WHERE list_user != '".$user."' AND list_ip = '".$ip."' AND list_date = '".$namefolder."'";
- //echo $SQL;
- $mysqli->query($SQL);
- } //Close IF
- } //Close While
- closedir($dh);
- } //Close IF
- } //Close IF
- } //Close else
- } //Close If
- } //Close For
- $SelectDateGet = $_GET["SelectDate"];
- $year = substr($SelectDateGet,0,4);
- $month = substr($SelectDateGet,4,2);
- $day = substr($SelectDateGet,6,2);
- $SelectDate="<select name='SelectDate' class='textbox'>";
- $SQL="SELECT * FROM it_report.check_date ORDER BY check_date DESC";
- $Result = $mysqli->query($SQL);
- while($row = $Result->fetch_assoc()){
- //echo $row["check_date"].":".$SelectDateGet;
- if($row["check_date"] == $SelectDateGet){
- $SelectDate.="<option value='$row[check_date]' selected>$row[check_date]</option>";
- } else {
- $SelectDate.="<option value='$row[check_date]'>$row[check_date]</option>";
- }
- }
- $SelectDate.="</select>";
- $subcontent =<<<TEMPLATE
- <div id="list1"><!--%LINK%--></div>
- <TABLE cellSpacing="1" cellPadding="2" width='50%' border=1 align="center">
- <tr bgcolor="CCCCCC" align="center">
- <td>Number</td><td>User</td><td>IP</td><td>Count</td></tr>
- </tr>
- <!--%LOOP%-->
- <tr class="<!--%CLASS%-->">
- <td align="center"><!--%NO%--></td>
- <td align="left"><!--%LIST_USER%--></td>
- <td align="left"><!--%LIST_IP%--></td>
- <td align="center"><!--%COUNT%--></td>
- <!--%EDIT%-->
- </tr>
- <!--%LOOP%-->
- <tr class="headerbar" align="center">
- <td>Number</td><td>User</td><td>IP</td><td>Count</td></tr>
- </tr>
- </table>
- <div id="list2"><!--%LINK%--></div>
- TEMPLATE;
- //$SQL ="SELECT COUNT(list_user) AS num, list_user, list_date FROM it_report.check_list WHERE list_date = '20160727' GROUP BY list_user, list_date ORDER BY num DESC";
- $SQL ="SELECT COUNT(list_user) AS num, list_user, list_date FROM it_report.check_list WHERE list_date = '".$SelectDateGet."' GROUP BY list_user, list_date ORDER BY num DESC";
- $Result1 = $mysqli->query($SQL);
- //echo $SQL;
- $sct =split("<!--%LOOP%-->",$subcontent);
- $i = 1;
- while($Row1 = $Result1->fetch_assoc()){
- $list_user = $Row1["list_user"];
- $list_date = $Row1["list_date"];
- $list_count = $Row1["num"];
- $thisline=$sct[1];
- $SQL ="SELECT * FROM it_report.check_list WHERE list_user = '".$list_user."' AND list_date = '".$list_date."'";
- //$SQL ="SELECT * FROM it_report.check_list WHERE list_date = '20160727'";
- $Result = $mysqli->query($SQL);
- //echo $SQL;
- ///////////////////////////////////////////////////////////////////////
- //$sct =split("<!--%LOOP%-->",$subcontent);
- //$i = 1;
- while($Row = $Result->fetch_assoc()){
- $thisline=$sct[1];
- $class =($class != "bg1")? "bg1":"bg2";
- $user = $Row["list_user"];
- $list_user = "<a href=\"user_detail.cgi?year=".$year."&month=".$month."&day=".$day."&user=".$user."\" target='_blank'>".$user."</a> ";
- $thisline = str_replace("<!--%CLASS%-->",$class, $thisline);
- $thisline = str_replace("<!--%NO%-->",$i, $thisline);
- $thisline = str_replace("<!--%LIST_USER%-->",$list_user, $thisline);
- $thisline = str_replace("<!--%LIST_IP%-->",$Row["list_ip"],$thisline);
- $thisline = str_replace("<!--%COUNT%-->",$list_count,$thisline);
- $loopcontent.=$thisline;
- $i = $i+1;
- }
- $sct[0] = str_replace("<!--%LINK%-->",$link,$sct[0]);
- $sct[2] = str_replace("<!--%LINK%-->",$link,$sct[2]);
- }
- //echo ($sct[0].$loopcontent.$sct[2]);
- ?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <title>Check LightSquid</title>
- <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
- <!-- <script type="text/javascript" src="it.js"></script> -->
- <script type="text/javascript">
- function getList(ACTION){
- }
- </script>
- </head>
- <body>
- <br /><br /><br />
- <div align='center'>
- <form id='login' onclick="getList()"/ >
- <table width='30%' border=1>
- <tr align='center' bgcolor='#BFBFBF'><td align='center' colspan='2'>เลือกวันที่ ที่ต้องการ</td></tr>
- <tr>
- <td align='right'>วันที่ : </td><td align='left'><?php echo $SelectDate ?></td>
- </tr>
- </tr>
- <tr>
- <td align='center' colspan='2'><input id='submit' type='submit' value='ตกลง'></td>
- </tr>
- </table>
- </form>
- </div>
- <br/>
- <div class="navbar"><div class="inner">
- <span class="corners-top"><span></span></span>
- <div align="center">
- <h3>รายการ</h3>
- <?php echo ($sct[0].$loopcontent.$sct[2]) ?>
- </div>
- <span class="corners-bottom"><span></span></span>
- </div>
- </div>
- </body>
- </html>
No comments:
Post a Comment