Обходится очень легко - грузится старая база, которую здесь же и достать можно. RouterScan Log, или скан диапазона укртелекома. Там больше 3000 точек. Старые данные? Пох, главное доступ к базе получен, то что юзер немножко нагадил, так это даже хорошо, ибо не фиг жлобиться) Вспомни как на торрентах обходили рейтинг. 3000 новых точек? Попробуй сам столько собрать. А когда не выйдет, можно сгенерировать фейковых точек и залить в базу. Зачем? Читай выше. Удалить базу надо тогда. Только так не сольют. Если есть ограничение на что-то, и есть желающий это получить, он получит его. Есть торрент трекеры с инвайтами, и люди платят за них. Не сильно "илтный" трекер - 10 баксов, очень "илитный" - 200 баксов. Для массового юзера на таких трекерах мало чего интересного, слив барахла в публику ничего ужасного не делает, только жопы завсегдатаям трекера поджигает. Так вот, чем сильнее ограничивать, тем быстрее найдется желающий слить, чисто из принципа. И будут желающие платить за слитые данные, за тот же оффлайн, который честным путем не получить. Слить базу и сейчас можно, в полуавтоматическом режиме спарсить данные с карты. Вообще, к базе следует относиться так, как будто ее уже слили. Потому что ее сольют, рано или поздно. Ну допустим, ввели ограничение на доступ к базе после 3к точек, регу, инвайты, ограничение на запросы и т.д. и вдруг базу в лучшем случае сливают в паблик, пополнив словари для брута и базы телефонного спама. В худшем, хитрый барыга, пользуясь базой с ограниченным доступом, пилит софт для плей маркета, угрожая халявным вайфаем везде и всюду, и стрижет зелень "за воздух" или откручивает рекламу. Делая за бабло то, что "официальный" разработчик не хочет делать. Хитрый барыга стрижет бабло и ни за что не отвечает, мопед не его, участники основного проекта унижены и обижены, как же так, кто-то продает их данные. Почему так произошло? Ну хз. *** Spoiler: несколько идей на пьяную голову Едем дальше, о данных, офлайне, регистрациях и прочем. Нужно добавить в проект список провайдеров с их диапазонами. Наилучшим вариантом будет база автономных систем. Зачем? Читаем дальше. 1) Почистить из базы ip роутеров, заменить это на AS провайдера. Так как в половины случаев это динамические ip, они уже не актуальны. 2) Навести порядок в статистике. Положить конец комменту none и RouterScan, точки после загрузки автоматически добавляются в копилку к провайдеру Переделать страницу статистики, вместо невнятной путаницы сделать таблицу типа ASN - Имя провайдера - кол-во точек - последнее обновление - коммент. По тыку на провайдера открывается кушабельный список диапазонов ip для скана + история комментов. вот вам и идея с форумом + проверкой актуальности + распределением нагрузки. На роутеры в локалке пока что положим болт, будет чисто по комменту сортировка. теперь о юзерах - публика, движимая целью поиска шарового инета, ходит без логина по общему паролю, может выгрузить базу по провайдеру, городу (в киент 3wifi например). База из 4 полей - мак, имя сети, пароль, впс пин. + Возможно координаты, если будет локация по типу wifi map. Для доступа к халяве хватит. При скане сети, и загрузки лога на сайт, может вписать что-то в коммент, этот коммент появится в статистике по прову. Зареганный юзер может все то же + скачать свои логи + выгрузить базу целиком (без ip адресов и данных авторизации, но с прописанным диапазоном провайдера), для анализа паролей например, или поиска алгоритма wps pin + добавлять коммент к диапазонам без необходимости залития лога скана (чтобы уведомить о мусорных диапазонах: сети хостеров, пустых диапазонах и т.д.), менять имена диапазонов (в базе AS провайдеры бывают вписаны как FOP Ivanov Ivan, и есть смысл переименовать это во что нибудь понятное, типа ЛохНет, Москва, как теперь в комментах пишут). *** пысы: шифрование офлайн базы никак не защитит, есть файл с хешами, есть алго хеширования, откуда и какие данные брать для хеширования, есть plaintext в виде онлайн точек на сайте. Пилится скрипт, который тянет инфо точек с карты, хеширует их, сравнивает с тем, что есть в базе, и при попадании меняет хеш на чистые данные. и так база дешифруется.
нашел свой новый роуутер в базе) решил посмотреть на сколько точно определяются точки на карте. Точка отображается на углу соседнего дома)ну думаю наверно не точно определилась на карте. думаю ладно и так нормально. А сегодня иду домой мимо того соседнего дома где отображается мой роутер и вижу такую картину молодой пацан лет 16 крутит у себя на болконе мощную wifi антену)и тут меня осенило а случайно ли мой новый роутер определился в этом доме?) посмотрел историю а там один мас не мой)я так понимаю на карте не сами роутеры находятся, а устройства к ним подключенные)Или это совпадение)
Не совпадение, беспроводные клиенты под управлением Android, iOS, и другие также используются для определения геолокации новых точек. Где-то выше в этой же теме мы говорили об этом.
Удалось посмотреть на кластеризацию в максимальном удалении, но грузит ужасно долго и подозреваю, что данные не совсем корректны.
Нашел узкое место: тормозит запрос SELECT COUNT(*) FROM `GEO_TABLE`... Ищу способы как ускорить. Может попробовать MS SQL? Пишут там с этим нет проблем. Еще нужно сделать привязку секторов к тайлам, иначе рассинхрон запросов и как следствие невозможность закэшировать запрос. Кто такая Navteq? Я только с Яндексом дружу. Смотрю еще в сторону OpenStreetMaps, видел там тепловую карту можно сделать - здорово выглядит!
А если переедем на *nix хост? И по-моему SELECT COUNT(BSSID) FROM `GEO_TABLE` будет немного быстрее. Ещё Fusix говорил, что делать запросы в цикле - не оптимально.
Незначительная разница есть: SELECT COUNT(*) FROM `GEO`, `BASE` =27,581 sec. SELECT COUNT(`GEO`.`BSSID`) FROM `GEO`, `BASE` WHERE =26,552 sec. SELECT COUNT(`BASE`.`BSSID`) FROM `GEO`, `BASE` WHERE =28,470 sec. //(`latitude` != 0 AND `longitude` != 0) AND (`latitude` BETWEEN 1 AND 90 AND `longitude` BETWEEN 1 AND 90) AND `BASE`.`BSSID` = `GEO`.`BSSID` Если убрать (`latitude` != 0 AND `longitude` != 0) то выиграем еще 0,1 sec. Переставим условия местами и выиграем еще 0,6 sec. Можно объединить запросы в один, чтобы от цикла избавиться, но это тормозит сам запрос вместо 27,581 sec получаем 29,266 sec. Spoiler: запрос SELECT (SELECT COUNT(*) FROM `GEO`, `BASE` WHERE `BASE`.`BSSID` = `GEO`.`BSSID` AND (`latitude` BETWEEN 1 AND 45 AND `longitude` BETWEEN 1 AND 45)) 'c1', (SELECT COUNT(*) FROM `GEO`, `BASE` WHERE `BASE`.`BSSID` = `GEO`.`BSSID` AND (`latitude` BETWEEN 1 AND 45 AND `longitude` BETWEEN 46 AND 90)) 'c2', (SELECT COUNT(*) FROM `GEO`, `BASE` WHERE `BASE`.`BSSID` = `GEO`.`BSSID` AND (`latitude` BETWEEN 46 AND 90 AND `longitude` BETWEEN 1 AND 45)) 'c3', (SELECT COUNT(*) FROM `GEO`, `BASE` WHERE `BASE`.`BSSID` = `GEO`.`BSSID` AND (`latitude` BETWEEN 46 AND 90 AND `longitude` BETWEEN 46 AND 90)) 'c4' Можно еще предварительно скомпилированные запросы использовать (как раньше было), но думаю прирост будет незначительный, если будет. На счет смены платформы на *nix, думаю толку от этого особо не будет. Есть такие идеи: 1. привязать границы секторов к тайлам, тогда кэширование будет срабатывать. 2. добавить еще одну таблицу - кластеры, и на каждый зум потайлово их формировать. Сложность в том, что при любом изменении в BASE, нужно будет пересчитывать соответствующий тайл\кластер. 3. Использовать quadkey. Это автоматически сделает привязку к фиксированным областям, а значит позволит кэшировать запросы, а также ускорит поиск кластеров (там можно искать по маске). Это лучший вариант, но надо много править касаемо вычисления координат. Хорошую статью на эту тему предлагали здесь на форуме.
F8:C0:91:12:88:54 Интересный факт... в WIFIMAP есть пароли, у которых обрезаны нули, но не ведущие, а завершающие.
Возможно 123000...000 превратилось в 123е20, затем в строку "123e20", затем из строки в число, но "e20" воспринялось как текст и отбросилось. А может просто хранили в перевернутом виде 000..0321
Вот тайлы было бы интересно, а именно разбить GEO на пару десятков таблиц. Сейчас при поиске базе приходится бегать через кучу не нужных точек с другого конца света, что замедляет. Реализовать функции GetTailFromCoord чисто арифметическими способами можно. Звучит интересно...
Немного переделал, сам код карт будет запрашивать потайлово, каждый тайл=сектор. Цикл убрал. Вроде пошустрее работает, после небольшой буферизации. По началу зависает, приходится карту перезагружать. Но после 3-5 минут прокруток, перезагрузок, вполне сносно работает. http://rghost.ru/6XQv9Zfpj Но боюсь придется отключить демон геолокации, а может вовсе все демоны. А то кэш будет быстро устаревать. Как вариант, часть работы можно переложить на PHP (в базе запрашивать только тайлы размером 1,3,5,7, а на приближении 2,4,6,8 обрабатывать пыхом предыдущие результаты). Еще можно запретить некоторые уровни зума - меньше разнотипных запросов к базе, меньше кэш. Не совсем понял про GetTailFromCoord, думаю все-таки quadkey вместо lat lon будет лучше.
Новости проекта: (актуально для тех, кто не следит за коммитами) 1. Поиск точек: если IP точки локальный - диапазон будет показан по полю WAN IP 2. Поиск диапазонов: теперь задействует оба поля - IP и WAN IP 3. Статистика DNS: теперь учитываются все три столбца (раньше только по первому) 4. Статистика общая: добавлен вывод уникальных BSSID, а также состояние заданий 5. Загрузка в базу: добавлена подсказка комментариев В списке TODO ещё полно всего, я помню обо всём
Подскажите, порт 61080 откуда взялся? Может в статистику устройств добавить колонку порта? А то непонятно какие устройства на каких портах ловить. Вот мне именно 61080 ни разу не попадался.
Смотрел тут WiFi map... Платные города сливаются на раз-два! Только времени уходит много на тыкание скачать, скачать, скачать... Ну да ладно. База в sqlite, все данные как-то хитро разбиты на таблицы со ссылками друг на друга по I'd. В принципе, собрать воедино можно. Чуть было не занялся этим, но решил сначала посмотреть в самой пороге, что же за пароли в базе?! А пароли сплошной спам! То какие-то пасылы типа 'naui idi', то явно не валидные '123', то комментарии 'самое лучшее кофе в городе', куча повторов... В общем, если взять Москву, то у нас на карте в 10 раз больше точек, данные более чистые и верные. В целом у нас 1кк точек, у них 2кк мусора. Удалил WiFi map навсегда, мне такое и даром не надо! И в 3wifi базу лить не советую, а ещё лучше удалить все что имеем в базе с этим комментарием.
" Это было давно понятно, так как скачав их приложение и через 4pda обмануть приложение, что ты его купил посмотрев на точки в своем городе, полный фейк. В принципе есть наверно люди купившие это приложение, но!! Google play вроде как выдал систему отказа от покупки приложения в течении 5 суток, если не изменяет память, на любое приложение, будь то игра.. Теперь разработчики пользуются донатом- приложение бесплатно, и вернуть нечего. Проект Придуманный Вами, явно не входит в интерес людей заработать на этом, что радует, и вливают все более новые,актуальные данные. Так держать. Поэтому я за защиту базы. Если базу и открывать, вы должны понимать, что ей не будут торговать не на "черном рынке", а выведут ее на тот же Google Play/ и заработают на этом деньги, считай за наш счет- труды, с таким же интересом - если вдруг база будет открыта, стоит прежде самам подумать о платном приложении, чем давать нахлебникам пользоваться, а мы за Вас порадуемся, хоть какие-то денежки для стимула, развивать проект. И вопрос, голосование выше каким будет - бессрочный?