示例#1
0
 public static function processQuickLink($qlArray)
 {
     global $dbQueryHtml, $dbQuerySummary;
     // base sql
     $sql = "SELECT as_users.num, tr_item.traceroute_id, traceroute.id, ip_addr_info.mm_city, ip_addr_info.ip_addr, ip_addr_info.asnum FROM as_users, tr_item, traceroute, ip_addr_info WHERE (tr_item.traceroute_id=traceroute.id) AND (ip_addr_info.ip_addr=tr_item.ip_addr) AND (as_users.num=ip_addr_info.asnum)";
     if ($qlArray[0]['constraint2'] == "lastSubmission") {
         //$dbQueryHtml .= "Displaying <span id='tr-count'>1</span> of 1 results";
         $dbQuerySummary .= "Displaying <span id='tr-count'>1</span> of 1 results";
         //will get you the id of the last traceroute submitted
         $sql = "select id from traceroute order by sub_time desc limit 1";
         //echo '<hr/>'.$qlArray[0]['constraint2'].'<br/>SQL: '.$sql;
         return Traceroute::getTrSet($sql, "");
     } else {
         if ($qlArray[0]['constraint2'] == "recentRoutes") {
             //$dbQueryHtml .= "Displaying <span id='tr-count'>1</span> of 50 results";
             $dbQuerySummary .= "Displaying <span id='tr-count'>1</span> of 50 results";
             $sql = 'select id from traceroute order by id desc limit 50';
             //echo '<hr/>'.$qlArray[0]['constraint2'].'<br/>SQL: '.$sql;
             return Traceroute::getTrSet($sql, "");
         } else {
             return array();
         }
     }
 }
示例#2
0
 public static function processQuickLink($qlArray)
 {
     // base sql
     $sql = "SELECT as_users.num, tr_item.traceroute_id, traceroute.id, ip_addr_info.mm_city, ip_addr_info.ip_addr, ip_addr_info.asnum FROM as_users, tr_item, traceroute, ip_addr_info WHERE (tr_item.traceroute_id=traceroute.id) AND (ip_addr_info.ip_addr=tr_item.ip_addr) AND (as_users.num=ip_addr_info.asnum)";
     if ($qlArray[0]['constraint2'] == "lastSubmission") {
         echo "Processing last submission request";
         //will get you the id of the last traceroute submitted
         $sql = "select id from traceroute order by sub_time desc limit 1";
         //echo '<hr/>'.$qlArray[0]['constraint2'].'<br/>SQL: '.$sql;
         return Traceroute::getTrSet($sql);
     } else {
         if ($qlArray[0]['constraint2'] == "recentRoutes") {
             echo "Processing last 50 submitted traceroutes";
             $sql = 'select id from traceroute order by id desc limit 50';
             //echo '<hr/>'.$qlArray[0]['constraint2'].'<br/>SQL: '.$sql;
             return Traceroute::getTrSet($sql);
         } else {
             if ($qlArray[0]['constraint2'] == "myCity") {
                 echo "Processing my city request";
                 // using MaxMind to find the city of client IP address
                 $myIp = $_SERVER['REMOTE_ADDR'];
                 $gi1 = geoip_open("../geoip/dat/GeoLiteCity.dat", GEOIP_STANDARD);
                 $record1 = geoip_record_by_addr($gi1, $myIp);
                 $myCity = '' . $record1->city;
                 geoip_close($gi1);
                 echo '<br/>My IP: ' . $myIp;
                 echo '<br/>My City: ' . $myCity;
                 echo "<br/><i>Using MaxMind's GeoLiteCity Database</i><br/>";
                 $sql .= " AND ip_addr_info.mm_city LIKE '%" . $myCity . "%'";
                 //echo '<hr/>'.$qlArray[0]['constraint2'].'<br/>SQL: '.$sql;
                 if ($myCity != '') {
                     return Traceroute::getTrSet($sql);
                 } else {
                     return array();
                 }
             } else {
                 return array();
             }
         }
     }
 }
示例#3
0
 /**
  */
 public static function getTraceRoute($data)
 {
     global $dbconn;
     $result = array();
     $data_array = json_decode($data, ture);
     $trSets = array();
     $conn = 0;
     $limit1 = 4500;
     $limit2 = 5000;
     $offset = 0;
     // loop constraints
     foreach ($data_array as $constraint) {
         $w = '';
         $sql = '';
         $sql = "SELECT as_users.num, tr_item.traceroute_id, traceroute.id, ip_addr_info.mm_city, ip_addr_info.ip_addr, ip_addr_info.asnum FROM as_users, tr_item, traceroute, ip_addr_info WHERE (tr_item.traceroute_id=traceroute.id) AND (ip_addr_info.ip_addr=tr_item.ip_addr) AND (as_users.num=ip_addr_info.asnum)";
         $w .= '' . Traceroute::buildWhere($constraint);
         //$sql .=$w.' and traceroute.id between '.$limit1.' AND '.$limit2.' order by tr_item.traceroute_id, tr_item.hop, tr_item.attempt';
         $sql .= $w . ' order by tr_item.traceroute_id, tr_item.hop, tr_item.attempt';
         //LIMIT '.$limit.' OFFSET '.$offset.''
         //echo '<br/><i>'.$sql.'</i>';
         //$newTrSet = array(Traceroute::getTrSet($constraint), $operand);
         $trSets[$conn] = Traceroute::getTrSet($sql);
         //print_r($trSets[$conn]);
         //$trSets[$conn]=$newTrSet;
         //$sql.= " ".Traceroute::buildWhere($constraint);
         $conn++;
     }
     // end for each
     $trSetResult = array();
     //echo '<hr/>';
     for ($i = 0; $i < $conn; $i++) {
         $trSetResultTemp = array();
         // only one constraint
         if ($i == 0) {
             //$trSetResult=$trSets[0];
             $trSetResult = array_merge($trSetResult, $trSets[0]);
             // all in between
         } else {
             if ($i > 0) {
                 if ($data_array[$i - 1]['constraint5'] == 'OR') {
                     /*
                     	echo '<br/>OR case. Merging';
                     	echo '<br/>ToT trSetResult: '.count($trSetResult);
                     	echo '<br/>ToT trSets['.$i.']: '.count($trSets[$i]);
                     */
                     $trSetResultTemp = array_merge($trSetResult, $trSets[$i]);
                     //$trSetResultTemp = array_merge($trSets[$i-1],$trSets[$i]);
                     $trSetResultTemp = array_unique($trSetResultTemp);
                     //echo '<br/>ToT trSetResultTemp: '.count($trSetResultTemp);
                     $trSetResult = array_merge($trSetResult, $trSetResultTemp);
                 } else {
                     /*echo '<br/>AND case. Intersecting';
                     		echo '<br/>ToT trSetResult: '.count($trSetResult);
                     		echo '<br/>ToT trSets['.$i.']: '.count($trSets[$i]);*/
                     //$trSetResultTemp = array_intersect($trSetResult,$trSets[$i]);
                     $trSetResultTemp = array_intersect($trSetResult, $trSets[$i]);
                     //echo '<br/>ToT trSetResultTemp: '.count($trSetResultTemp);
                 }
                 $trSetResult = array();
                 $empty = array();
                 $trSetResult = array_merge($empty, $trSetResultTemp);
                 //$trSetResult =  array_merge($trSetResult, $trSetResultTemp);
             }
         }
         //echo '<br/>--- ToT trSetResult: ['.$i.'] '.count($trSetResult);
     }
     // end for
     $trSetResultLast = array_unique($trSetResult);
     //$trSetResult = array_intersect($trSets[0],$trSets[1],$trSets[2]);
     echo '<hr/><a name="tot-trs" id="tot-trs"></a>Total traceroutes : <b>' . count($trSetResultLast) . "</b>";
     //echo '<hr/>getTraceRoute: '.memory_get_usage();
     unset($trSetResult);
     unset($trSetResultTemp);
     unset($trSets);
     //echo '<hr/>getTraceRoute: '.memory_get_usage();
     return $trSetResultLast;
 }