function getFloatCoord($coord) { global $db; $name = randomStr(12, false); if (!QuerySql("CREATE TEMPORARY TABLE `{$name}` (coord FLOAT(12,8))")) { return null; } QuerySql("INSERT INTO `{$name}` (coord) VALUES ({$coord})"); $res = QuerySql("SELECT coord FROM `{$name}`"); $row = $res->fetch_row(); $res->close(); QuerySql("DROP TABLE `{$name}`"); return $row[0]; }
function db_ap_exist($NoBSSID, $bssid, $essid, $key) { global $db; $result = 0; $essid = $db->real_escape_string($essid); $key = $db->real_escape_string($key); // Проверяем, есть ли эта точка в базе (по BSSID/ESSID/WiFiKey) if ($res = QuerySql("SELECT `id` FROM BASE_TABLE WHERE `NoBSSID`={$NoBSSID} AND `BSSID`={$bssid} AND `ESSID`='{$essid}' AND `WiFiKey`='{$key}' LIMIT 1")) { $result = $res->num_rows; $res->close(); } return $result > 0; }
$time = microtime(true); while ($row = $res->fetch_row()) { $done++; $bssid = $row[0]; $latitude = 0; $longitude = 0; $quadkey = 'NULL'; $coords = GeoLocateAP(dec2mac($bssid)); if ($coords != '') { $found++; $coords = explode(';', $coords); $latitude = (double) $coords[0]; $longitude = (double) $coords[1]; $quadkey = base_convert(latlon_to_quadkey($latitude, $longitude, MAX_ZOOM_LEVEL), 2, 10); } QuerySql("UPDATE GEO_TABLE SET `latitude`={$latitude},`longitude`={$longitude}, `quadkey`={$quadkey} WHERE `BSSID`={$bssid}"); if (microtime(true) - $time > $hangcheck && $done < $total) { logt("Status: {$done} of {$total}, {$found} found on map (Working)"); $time = microtime(true); } } logt("Status: {$done} of {$total}, {$found} found on map (Done!)"); } $res->close(); sleep(10); } break; // Обновление ранее не найденных точек // Обновление ранее не найденных точек case 'recheck': require_once 'geoext.php';
// DNS серверы case 'stdns': set_time_limit(30); $json['result'] = true; $json['stat']['top'] = TOP_DNS; if (!db_connect()) { $json['result'] = false; $json['error'] = 'database'; break; } if ($res = QuerySql("SELECT COUNT(DISTINCT DNS) FROM (\n\tSELECT DNS1 AS DNS FROM BASE_TABLE WHERE DNS1 != 0 \n\tUNION ALL \n\tSELECT DNS2 AS DNS FROM BASE_TABLE WHERE DNS2 != 0 \n\tUNION ALL \n\tSELECT DNS3 AS DNS FROM BASE_TABLE WHERE DNS3 != 0) DNSTable")) { $row = $res->fetch_row(); $json['stat']['total'] = (int) $row[0]; $res->close(); } if ($res = QuerySql("SELECT DNS, COUNT(DNS) FROM (\n\tSELECT DNS1 AS DNS FROM BASE_TABLE WHERE DNS1 != 0 \n\tUNION ALL \n\tSELECT DNS2 AS DNS FROM BASE_TABLE WHERE DNS2 != 0 \n\tUNION ALL \n\tSELECT DNS3 AS DNS FROM BASE_TABLE WHERE DNS3 != 0) DNSTable \n\tGROUP BY DNS ORDER BY COUNT(DNS) DESC LIMIT " . TOP_DNS)) { $json['stat']['data'] = array(); while ($row = $res->fetch_row()) { $data = array(); $data[] = (int) $row[1]; $data[] = _long2ip($row[0]); $json['stat']['data'][] = $data; } $res->close(); } $db->close(); break; // Активные участники (Сидеры) // Активные участники (Сидеры) case 'stsid': set_time_limit(30);
3WiFi Script for add `quadkey` column to geo tables **/ set_time_limit(0); include 'config.php'; require 'db.php'; require 'quadkey.php'; db_connect(); foreach (array('geo', 'mem_geo') as $geo_table) { $sql = "ALTER TABLE `{$geo_table}` \n\t\t\tADD COLUMN `quadkey` BIGINT(20) UNSIGNED DEFAULT NULL, \n\t\t\tDROP INDEX `Coords`, \n\t\t\tADD INDEX (`quadkey`)"; var_dump($sql); if (!$db->query($sql)) { echo "Failed to alter table {$geo_table}: "; echo "(" . $db->errno . ") " . $db->error; } $coord_res = QuerySql("SELECT * FROM {$geo_table} \n\t\t\tWHERE `latitude` != 0 AND `longitude` != 0 \n\t\t\tAND `latitude` IS NOT NULL AND `longitude` IS NOT NULL \n\t\t\tAND `quadkey` IS NULL"); if (!$coord_res) { echo "Failed to select from {$geo_table}: "; echo "(" . $db->errno . ") " . $db->error; exit; } if (!($stmt = $db->prepare("UPDATE {$geo_table} SET `quadkey`=? WHERE `BSSID`=?"))) { echo "Failed to prepare query: (" . $db->errno . ") " . $db->error; exit; } $quadkey = ''; $bssid = ''; if (!$stmt->bind_param("ss", $quadkey, $bssid)) { echo "Failed to bind params: (" . $stmt->errno . ") " . $stmt->error; exit; }
<?php require_once "conn.php"; require_once "func.php"; $match_way = $_POST['match_way']; $query_way = $_POST['query_way']; $search_text = $_POST['search_text']; $Fields = getFields($query_way); //CheckStringType($Fields,$search_text); if ($search_text == '') { echo "请输入字符"; } else { $sql = QuerySql($match_way, $query_way, $search_text, $Fields); //echo $sql."<br/>"; $res = mysql_unbuffered_query($sql); echo "<table border='1'><tr>"; foreach ($Fields as $value) { echo "<th>" . $value . "</th>"; } echo "</tr>"; while ($row = mysql_fetch_array($res)) { echo "<tr onmouseover=\"this.style.backgroundColor='#ffff66';\" onmouseout=\"this.style.backgroundColor='#d4e3e5';\">"; for ($m = 0; $m < count($Fields); $m++) { echo "<td>" . $row[$m] . "</td>"; } echo "</tr>"; } echo "</table>"; mysql_close($conn); }