%PDF- %PDF-
Direktori : /var/www_old/ |
Current File : //var/www_old/jabber_net.php__b81eaf3 |
<?php function int2ip($val) { $ret = $val % 256; $val /= 256; $ret = ($val % 256).".$ret"; $val /= 256; $ret = ($val % 256).".$ret"; $val /= 256; $ret = ($val % 256).".$ret"; return $ret; } function fsize($size) { $jedn = array("bytes", "Kbytes", "Mbytes", "Gbytes", "Tbytes", "Pbytes"); //$size = filesize($name); $i = 0; while($size > 1023) { $size /= 1024; $i++; } return sprintf("%0.2f %s", $size, $jedn[$i]); } function getmicrotime() { list($usec,$sec)=explode(" ",microtime()); return ((float)$usec+(float)$sec); } $tzac = getmicrotime(); //$gi = geoip_open("/usr/share/GeoIP/GeoIP.dat",GEOIP_STANDARD); // Nacteni DNS cache $dns = array(); if(file_exists("dnscache_jabb.csv")) { $f = fopen("dnscache_jabb.csv", "r"); while(!feof($f)) { $line = fgets($f); list($ip, $hostname) = explode(';', trim($line)); $dns[$ip] = $hostname; } fclose($f); } $fname = date("Y/m"); //echo $fname; //die; if(isset($_GET['all'])) $fname = ""; echo "<!-- nfdump -R /var/log/netflows/$fname -o pipe -s ip/bytes -n 0 \"port 5222 and proto tcp\" -->"; $f = popen("nfdump -R /var/log/netflows/$fname -o pipe -s ip/bytes -n 0 \"port 5222 and proto tcp\"", "r"); $vys = array(); $zeme = array(); $i = 0; // Preskoceni radku co nechceme cist while(!feof($f)) { $line = fgets($f); if(trim($line) == "") break; // Konec dat if($i > 0) { $res = explode('|', $line); $vys[$i][0] = int2ip($res[9]); if($i <= 100) { if(isset($dns[$vys[$i][0]])) { $vys[$i][1] = $dns[$vys[$i][0]]; } else { $vys[$i][1] = gethostbyaddr($vys[$i][0]); $dns[$vys[$i][0]] = $vys[$i][1]; } } $vys[$i][2] = geoip_country_name_by_name($vys[$i][0]); $vys[$i][3] = geoip_country_name_by_name($vys[$i][0]); if(trim($vys[$i][2]) == "") { if(preg_match("/\\.cz$/", $vys[$i][1])) { $vys[$i][2] = "CZ"; $vys[$i][3] = "Czech Republic"; } } $vys[$i][4] = fsize($res[12]); $zeme[$vys[$i][3]] += $res[12]; if(strstr($vys[$i][1], 'vodafone.cz')) { $vys[0][1] = 'cust.vodafone.cz'; $vys[0][2] = "CZ"; $vys[0][3] = "Czech Republic"; $vys[0][4] += $res[12]; $i--; } } $i++; } fclose($f); $vys[0][4] = fsize($vys[0][4]); ksort($vys); $f = popen("nfdump -R /var/log/netflows/$fname -o pipe -s ip/bytes -n 0 \"port 5269 and proto tcp\"", "r"); $vys2 = array(); $i = 0; // Preskoceni radku co nechceme cist while(!feof($f)) { $line = fgets($f); if(trim($line) == "") break; // Konec dat if($i > 0) { $res = explode('|', $line); $vys2[$i][0] = int2ip($res[9]); if($i <= 100) { if(isset($dns[$vys2[$i][0]])) { $vys2[$i][1] = $dns[$vys2[$i][0]]; } else { $vys2[$i][1] = gethostbyaddr($vys2[$i][0]); $dns[$vys2[$i][0]] = $vys2[$i][1]; } } $vys2[$i][2] = geoip_country_name_by_name($vys2[$i][0]); $vys2[$i][3] = geoip_country_name_by_name($vys2[$i][0]); if(trim($vys2[$i][2]) == "") { if(preg_match("/\\.cz$/", $vys2[$i][1])) { $vys2[$i][2] = "CZ"; $vys2[$i][3] = "Czech Republic"; } } $vys2[$i][4] = fsize($res[12]); $zeme[$vys2[$i][3]] += $res[12]; } $i++; } fclose($f); // Vypis DNS cache $f = fopen("dnscache_jabb.csv", "w"); reset($dns); while(list($ip, $hostname) = each($dns)) { fputs($f, "$ip;$hostname\n"); } fclose($f); $tkon = getmicrotime(); $time = $tkon-$tzac; $time = sprintf("%01.4f", $time); ?> <html> <head> <title>Traffic analysis</title> </head> <body> <p><?php echo "Cas potrebny na zpracovani: $time sekund\n\n"; ?></p> <h1>Client2Server data by host</h1> <table width="900" border="1"> <tr> <th width="10%">#</th> <th width="20%">IP</th> <th width="35%">Domain name</th> <th width="15%">Data</th> <th width="20%">Country</th> </tr> <?php $i = 0; foreach($vys as $v) { $i++; echo " <tr> <td width=\"10%\">$i</td> <td width=\"20%\">$v[0]</td> <td width=\"35%\">$v[1]</td> <td width=\"15%\">$v[4]</td> <td width=\"20%\">$v[3]</td> </tr>\n"; if($i == 100) break; } ?> </table> <br /><br /><br /> <h1>Server2Server data by host</h1> <table width="900" border="1"> <tr> <th width="10%">#</th> <th width="20%">IP</th> <th width="35%">Domain name</th> <th width="15%">Data</th> <th width="20%">Country</th> </tr> <?php $i = 0; foreach($vys2 as $v) { $i++; echo " <tr> <td width=\"10%\">$i</td> <td width=\"20%\">$v[0]</td> <td width=\"35%\">$v[1]</td> <td width=\"15%\">$v[4]</td> <td width=\"20%\">$v[3]</td> </tr>\n"; if($i == 100) break; } ?> </table> <br /><br /><br /> <h1>Data by country</h1> <table width="400" border="1"> <tr> <th width="60%">Country</th> <th width="40%">Data</th> </tr> <?php arsort($zeme); while(list($country, $data) = each($zeme)) { $data = fsize($data); echo " <tr> <td width=\"60%\">$country</td> <td width=\"40%\">$data</td> </tr>\n"; } ?> </table> </body> </html>