Google maps для Symbian, база данных Cell ID в GoogleNetmonitor GSM/UMTS: от телефонов до измерительных комплексов

Ответить
Alien123
Начинающий нетмониторщик
Сообщения: 27
Зарегистрирован: Сб, 18-10-2008, 19:14
Нетмонитор: IPAQ 514, VirtualGPS, kamlex.com

Сообщение Alien123 »

Такс прочитал Privacy Policy
Таки да, гугл честно признается что собирает дофига наших данных в том числе и текущую позицию по GPS
Skvo
Netmonitor.ru team
Сообщения: 156
Зарегистрирован: Пн, 27-12-2004, 22:56
Откуда: Вологда
Нетмонитор: N6120c+S55+GPS+Logger

Сообщение Skvo »

Yurik писал(а):Skvo, как сделать цикл для перебора лаков?
Задача стоит такая - знаем номер БС со старым лаком, нужно выцепить у Гула новый лак из диапазона, например 3600-3699.
Если я правильно понял твою задачу, то просто поменяй входные данные:

в первой строчке вместо lac задай cid твоей знакомой БС:
net, cid, rnc = 25002, xxxx, 0

а в цикле вместо перебора по сid сделай наоборот, тоесть по диапазону лаков:
for lac in range(3600,3700):
Alien123
Начинающий нетмониторщик
Сообщения: 27
Зарегистрирован: Сб, 18-10-2008, 19:14
Нетмонитор: IPAQ 514, VirtualGPS, kamlex.com

Сообщение Alien123 »

Skvo писал(а):
McMaster писал(а):Skvo, еще есть вопрос по скрипту пробовал тут МТС сканировать net, lac = 25001, 570
выдает странные координаты
40152 - 34.751501 4212.683241
40161 - 34.727215 4212.651272
Баг в скрипте из-за отрицательных координат. Чтобы получить правильную координату, нужно вычесть 2в16степени/1000000... И в итоге получишь в своем примере США...

Я вот не могу понять как используя конкретный MCC можно получить другую страну? Или в гугле мусор?

Навоял скрипт который проходит по всем лакам и сидам МТС в Украине

Получаю

25501 0 26 51.926206 4294.107676
25501 0 46 35.952451 4179.684205
25501 0 103 41.664605 4206.99756
mirazh
Начинающий нетмониторщик
Сообщения: 5
Зарегистрирован: Ср, 27-04-2005, 16:09
Откуда: Литва
Нетмонитор: SE K750i

Сообщение mirazh »

Спасибо конечно Гуглю за такую идею. База очень впечетляет, почти все станции выдает, правда не ясно почему игнорирует код оператора и страны.
Заинтересовало то, что в ответе с сервера, кроме широты/долготы, содержатся еще каких-то два параметра. Первый - число в диапазоне от 50 до 5000, второй - число либо 30, либо 75. Может кто догадывается что это могут быть за данные? Вот как выглядит фрагмент скана:

Код: Выделить всё

СIDhex;CIDdec;   Широта  ;  Долгота ;     ?  ;    ?    ;
291a ; 10522 ; 55.672554 ; 25.356064 ; 5000.0 ; 30.0 ;
291b ; 10523 ; 55.523984 ; 25.104351 ; 5000.0 ; 30.0 ;
292a ; 10538 ; 55.601927 ; 25.45639 ; 3877.0 ; 75.0 ;
292b ; 10539 ; 55.689059 ; 25.336202 ; 4343.0 ; 75.0 ;
292c ; 10540 ; 55.76232 ; 25.462751 ; 500.0 ; 75.0 ;
293a ; 10554 ; 55.789549 ; 25.424213 ; 3875.0 ; 75.0 ;
295a ; 10586 ; 55.526353 ; 25.081059 ; 5000.0 ; 30.0 ;
295b ; 10587 ; 55.52324 ; 25.097516 ; 5000.0 ; 30.0 ;
295c ; 10588 ; 55.515145 ; 25.104195 ; 5000.0 ; 30.0 ;
297a ; 10618 ; 55.436813 ; 25.035814 ; 5000.0 ; 30.0 ;
297b ; 10619 ; 55.353567 ; 24.744053 ; 4368.0 ; 75.0 ;
297c ; 10620 ; 55.442967 ; 24.672058 ; 3875.0 ; 75.0 ;
299b ; 10651 ; 55.205681 ; 25.103207 ; 5000.0 ; 30.0 ;
299c ; 10652 ; 55.069091 ; 25.266929 ; 3875.0 ; 75.0 ;
299d ; 10653 ; 55.226027 ; 24.976439 ; 5000.0 ; 30.0 ;
304a ; 12362 ; 55.712006 ; 22.96973 ; 4196.0 ; 75.0 ;
304b ; 12363 ; 55.605783 ; 23.079097 ; 4376.0 ; 75.0 ;
304c ; 12364 ; 55.615907 ; 22.908455 ; 4368.0 ; 75.0 ;
304d ; 12365 ; 55.678136 ; 22.906575 ; 4060.0 ; 75.0 ;
305a ; 12378 ; 55.93451 ; 23.320816 ; 3875.0 ; 75.0 ;
305b ; 12379 ; 55.925248 ; 23.333523 ; 3013.0 ; 75.0 ;
305c ; 12380 ; 55.928981 ; 23.312937 ; 2750.0 ; 75.0 ;
306a ; 12394 ; 55.921469 ; 23.286339 ; 2798.0 ; 75.0 ;
306b ; 12395 ; 55.901203 ; 23.326719 ; 3875.0 ; 75.0 ;
306c ; 12396 ; 55.922487 ; 23.290841 ; 5000.0 ; 30.0 ;
307a ; 12410 ; 55.918179 ; 23.322898 ; 3894.0 ; 75.0 ;
307b ; 12411 ; 55.905791 ; 23.330799 ; 2785.0 ; 75.0 ;
308a ; 12426 ; 55.933637 ; 23.307608 ; 5000.0 ; 30.0 ;
308b ; 12427 ; 55.942156 ; 23.31825 ; 5000.0 ; 30.0 ;
308c ; 12428 ; 55.935784 ; 23.304351 ; 2750.0 ; 75.0 ;
mktl
Начинающий нетмониторщик
Сообщения: 6
Зарегистрирован: Пт, 11-05-2007, 14:54

Сообщение mktl »

Когда Гугля определяет координаты по соте, она ещё сообщает с какой точностью... А программа рисует кружки разного диаметра. В моём городе гугля иногда рисует кружочки 1800 метров и даже 2300!
Alien123
Начинающий нетмониторщик
Сообщения: 27
Зарегистрирован: Сб, 18-10-2008, 19:14
Нетмонитор: IPAQ 514, VirtualGPS, kamlex.com

Сообщение Alien123 »

То ли меня забанили то ли сервис гугла перестал пахать
Пробовал и питоном и шарпом (которые до этого отлично работали) Сервер возвращает ошибку как-будто нет координат :(
McMaster
Известный нетмониторщик
Сообщения: 637
Зарегистрирован: Вс, 29-05-2005, 13:44
Откуда: Московская область
Нетмонитор: HTC Artemis, Nokia 6600 (CellTrack+FTD)

Сообщение McMaster »

Alien123 писал(а):То ли меня забанили то ли сервис гугла перестал пахать
Пробовал и питоном и шарпом (которые до этого отлично работали) Сервер возвращает ошибку как-будто нет координат :(
забанили :)
Alien123
Начинающий нетмониторщик
Сообщения: 27
Зарегистрирован: Сб, 18-10-2008, 19:14
Нетмонитор: IPAQ 514, VirtualGPS, kamlex.com

Сообщение Alien123 »

Попробовал через проксю - пашет, а по моему айпишнику возвращает только 7 байт и хоть ты тресни :(
Так что злоупотреблять скриптом не стоит
Solar
Начинающий нетмониторщик
Сообщения: 5
Зарегистрирован: Пн, 07-07-2008, 23:21
Откуда: Норильск
Нетмонитор: HTC 3300 CPS,NM32

Сообщение Solar »

Посмеялся. :) Это пришло же в голову кому-то, что Гугля с нетмонитор.ру данные берет :)
Принцип действия мне стал очевиден сразу после того как я вдез в настройки ГуглМапа под ВМ. Есть там замечательный чек-бокс "Разрешить отправку данных.." :)
Все сразу очевидно.
Alien123
Начинающий нетмониторщик
Сообщения: 27
Зарегистрирован: Сб, 18-10-2008, 19:14
Нетмонитор: IPAQ 514, VirtualGPS, kamlex.com

Сообщение Alien123 »

В версии 2.2 для смартов никакого чекбокса нет, так что ничего очевидного :)
McMaster
Известный нетмониторщик
Сообщения: 637
Зарегистрирован: Вс, 29-05-2005, 13:44
Откуда: Московская область
Нетмонитор: HTC Artemis, Nokia 6600 (CellTrack+FTD)

Сообщение McMaster »

установил Питон 3.0
ругается на строчку

Код: Выделить всё

   print cid, '-', x, y
Аватара пользователя
Vl
Netmonitor.ru team
Сообщения: 121
Зарегистрирован: Ср, 12-01-2005, 17:30
Откуда: Калининград
Нетмонитор: Siemens c35i, Nokia N73

Сообщение Vl »

McMaster писал(а):установил Питон 3.0
ругается на строчку

Код: Выделить всё

   print cid, '-', x, y
Ставь 2.x (два шесть, кажется, там предлагают?)/ У меня заработало
McMaster
Известный нетмониторщик
Сообщения: 637
Зарегистрирован: Вс, 29-05-2005, 13:44
Откуда: Московская область
Нетмонитор: HTC Artemis, Nokia 6600 (CellTrack+FTD)

Сообщение McMaster »

Vl писал(а):
McMaster писал(а):установил Питон 3.0
ругается на строчку

Код: Выделить всё

   print cid, '-', x, y
Ставь 2.x (два шесть, кажется, там предлагают?)/ У меня заработало
так стояла, может кто напишет скрипт под версию 3.0? :)
FreeFox
Гость
Сообщения: 1
Зарегистрирован: Чт, 07-06-2007, 03:09

Сообщение FreeFox »

Skvo, скажи, а яндекс.карты не удалось "сломать"?
dzr_gregory
Гость
Сообщения: 3
Зарегистрирован: Пт, 06-02-2009, 16:39
Откуда: Дзержинск
Нетмонитор: Nokia 6680

Сообщение dzr_gregory »

Для всех, кому это может быть интересно, прилагаю 2 функции на Delphi, которые по заданным параметрам получают координаты с сервиса Google и Yandex соответственно.

PS: использовалась библиотека Indy 10 (Delphi 2007).

По всем вопросам пишите в личку.

Код: Выделить всё

function GetCoordFromGoogle(CountryCode, NetworkCode, LAC, CellID: Integer): string;
var
  strA, strB, strC, strAll: string;
  sResult: string;
  ms: TMemoryStream;
  dLat, dLon: Double;
  iLat, iLon: Integer;
  i: Integer;
  b: byte;
  sTmp, sTmp2: string;
  iCntr: Integer;
  HTTP: TIdHTTP;
begin
  Result := '';
  strA := '000E00000000000000000000000000001B0000000000000000000000030000';
  strB := '0000' + IntToHex(CellID, 2) + '0000' + IntToHex(LAC, 2);
  strC := '000000' + IntToHex(NetworkCode, 2) + '000000' + IntToHex(CountryCode, 2);
  strAll := strA + strB + strC + 'FFFFFFFF00000000';
  HTTP := TIdHTTP.Create(nil);
  HTTP.Request.ContentType := 'application/x-www-form-urlencoded';
  HTTP.Request.ContentLength := Length(strAll) div 2;
  ms := TMemoryStream.Create;
  try
    iCntr := 1;
    for i := 1 to (Length(strAll) div 2) do begin
      b := StrToInt('0x' + Copy(strAll, iCntr, 2));
      iCntr := iCntr + 2;
      ms.Write(b, 1);
    end;
    ms.Seek(0, soFromBeginning);
    try
      sResult := HTTP.Post('http://www.google.com/glm/mmap', ms);
      if Length(sResult) > 14 then begin
        sTmp := '0x';
        for i := 1 to 5 do begin
          sTmp2 := Copy(sResult, i + 6, 1);
          sTmp := sTmp + IntToHex(Ord(sTmp2[1]), 2);
        end;
        iLat := StrToInt(sTmp);
        sTmp := '0x';
        for i := 1 to 4 do begin
          sTmp2 := Copy(sResult, i + 11, 1);
          sTmp := sTmp + IntToHex(Ord(sTmp2[1]), 2);
        end;
        iLon := StrToInt(sTmp);
        dLat := iLat/1000000;
        dLon := iLon/1000000;
        Result := Format('%12.7f%s%12.7f', [dLat, #13#10, dLon]);
      end;
    except
      // stub
    end;
  finally
    HTTP.Free;
    ms.Free;
  end;
end;

function GetCoordFromYandex(CountryCode, NetworkCode, LAC, CellID: Integer): string;
const
 cc_URL = 'http://mobile.maps.yandex.net/cellid_location/?&cellid=%d&operatorid=%d&countrycode=%d&lac=%d';
var
  sURL: string;
  rs: TStream;
  node: IXMLNode;
  HTTP: TIdHTTP;
  XML: TXMLDocument;
begin
  Result := '';
  sURL := Format(cc_URL, [CellID, NetworkCode, CountryCode, LAC]);
  rs := TMemoryStream.Create;
  HTTP := TIdHTTP.Create(nil);
  XML := TXMLDocument.Create(HTTP); // если указать nil то будет ошибка :-D
  try
    HTTP.Request.Accept := 'text/plain';
    HTTP.Request.AcceptEncoding := 'windows-1251';
    try
      HTTP.Get(sURL, rs);
      if rs.Size > 0 then begin
        rs.Seek(0, soFromBeginning);
        XML.LoadFromStream(rs);
        XML.NSPrefixBase := 'location';
        node := XML.Node.ChildNodes.FindNode('location');
        if &#40;node <> nil&#41; then begin
          node &#58;= node.ChildNodes.FindNode&#40;'coordinates'&#41;;
          if &#40;node <> nil&#41; then begin
            Result &#58;=
              StringReplace&#40;node.Attributes&#91;'latitude'&#93;, '.', ',', &#91;&#93;&#41; + #13#10 +
              StringReplace&#40;node.Attributes&#91;'longitude'&#93;, '.', ',' ,&#91;&#93;&#41;;
          end;
        end;
      end;
    except
      // stub
    end;
  finally
    XML.Free;
    HTTP.Free;
    rs.Free;
  end;
end;
Ответить