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(); } } }
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(); } } } }
/** */ 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; }