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

Ответить
Konstantin2010
Начинающий нетмониторщик
Сообщения: 21
Зарегистрирован: Пн, 05-04-2010, 20:18

Сообщение Konstantin2010 »

Ребята, а нет ли у кого-то в PHP реализованного скрипта по обмену CID/LAC/MNC/MCC на LAT и LONG ?

В журнале хакер нашел такой, но не совсем ясно, куда там значение вставлять-то?

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

<?php

$data = 
"\x00\x0e". // Function Code?
"\x00\x00\x00\x00\x00\x00\x00\x00". //Session ID?
"\x00\x00". // Contry Code 
"\x00\x00". // Client descriptor
"\x00\x00". // Version
"\x1b". // Op Code?
"\x00\x00\x00\x00". // MNC
"\x00\x00\x00\x00". // MCC
"\x00\x00\x00\x03".
"\x00\x00".
"\x00\x00\x00\x00". //CID
"\x00\x00\x00\x00". //LAC
"\x00\x00\x00\x00". //MNC
"\x00\x00\x00\x00". //MCC
"\xff\xff\xff\xff". // ??
"\x00\x00\x00\x00"  // Rx Level?
;
if &#40;$_REQUEST&#91;"myl"&#93; != ""&#41; &#123;
  $temp = split&#40;"&#58;", $_REQUEST&#91;"myl"&#93;&#41;;
  $mcc = substr&#40;"00000000".dechex&#40;$temp&#91;0&#93;&#41;,-8&#41;;
  $mnc = substr&#40;"00000000".dechex&#40;$temp&#91;1&#93;&#41;,-8&#41;;
  $lac = substr&#40;"00000000".dechex&#40;$temp&#91;2&#93;&#41;,-8&#41;;
  $cid = substr&#40;"00000000".dechex&#40;$temp&#91;3&#93;&#41;,-8&#41;;
&#125; else &#123;
  $mcc = substr&#40;"00000000".$_REQUEST&#91;"mcc"&#93;,-8&#41;;
  $mnc = substr&#40;"00000000".$_REQUEST&#91;"mnc"&#93;,-8&#41;;
  $lac = substr&#40;"00000000".$_REQUEST&#91;"lac"&#93;,-8&#41;;
  $cid = substr&#40;"00000000".$_REQUEST&#91;"cid"&#93;,-8&#41;;
&#125;
$init_pos = strlen&#40;$data&#41;;
$data&#91;$init_pos - 38&#93;= pack&#40;"H*",substr&#40;$mnc,0,2&#41;&#41;;
$data&#91;$init_pos - 37&#93;= pack&#40;"H*",substr&#40;$mnc,2,2&#41;&#41;;
$data&#91;$init_pos - 36&#93;= pack&#40;"H*",substr&#40;$mnc,4,2&#41;&#41;;
$data&#91;$init_pos - 35&#93;= pack&#40;"H*",substr&#40;$mnc,6,2&#41;&#41;;
$data&#91;$init_pos - 34&#93;= pack&#40;"H*",substr&#40;$mcc,0,2&#41;&#41;;
$data&#91;$init_pos - 33&#93;= pack&#40;"H*",substr&#40;$mcc,2,2&#41;&#41;;
$data&#91;$init_pos - 32&#93;= pack&#40;"H*",substr&#40;$mcc,4,2&#41;&#41;;
$data&#91;$init_pos - 31&#93;= pack&#40;"H*",substr&#40;$mcc,6,2&#41;&#41;;
$data&#91;$init_pos - 24&#93;= pack&#40;"H*",substr&#40;$cid,0,2&#41;&#41;;
$data&#91;$init_pos - 23&#93;= pack&#40;"H*",substr&#40;$cid,2,2&#41;&#41;;
$data&#91;$init_pos - 22&#93;= pack&#40;"H*",substr&#40;$cid,4,2&#41;&#41;;
$data&#91;$init_pos - 21&#93;= pack&#40;"H*",substr&#40;$cid,6,2&#41;&#41;;
$data&#91;$init_pos - 20&#93;= pack&#40;"H*",substr&#40;$lac,0,2&#41;&#41;;
$data&#91;$init_pos - 19&#93;= pack&#40;"H*",substr&#40;$lac,2,2&#41;&#41;;
$data&#91;$init_pos - 18&#93;= pack&#40;"H*",substr&#40;$lac,4,2&#41;&#41;;
$data&#91;$init_pos - 17&#93;= pack&#40;"H*",substr&#40;$lac,6,2&#41;&#41;;
$data&#91;$init_pos - 16&#93;= pack&#40;"H*",substr&#40;$mnc,0,2&#41;&#41;;
$data&#91;$init_pos - 15&#93;= pack&#40;"H*",substr&#40;$mnc,2,2&#41;&#41;;
$data&#91;$init_pos - 14&#93;= pack&#40;"H*",substr&#40;$mnc,4,2&#41;&#41;;
$data&#91;$init_pos - 13&#93;= pack&#40;"H*",substr&#40;$mnc,6,2&#41;&#41;;
$data&#91;$init_pos - 12&#93;= pack&#40;"H*",substr&#40;$mcc,0,2&#41;&#41;;
$data&#91;$init_pos - 11&#93;= pack&#40;"H*",substr&#40;$mcc,2,2&#41;&#41;;
$data&#91;$init_pos - 10&#93;= pack&#40;"H*",substr&#40;$mcc,4,2&#41;&#41;;
$data&#91;$init_pos - 9&#93;= pack&#40;"H*",substr&#40;$mcc,6,2&#41;&#41;;

if &#40;&#40;hexdec&#40;$cid&#41; > 0xffff&#41; && &#40;$mcc != "00000000"&#41; && &#40;$mnc != "00000000"&#41;&#41; &#123;
  $data&#91;$init_pos - 27&#93; = chr&#40;5&#41;;
&#125; else &#123;
  $data&#91;$init_pos - 24&#93;= chr&#40;0&#41;;
  $data&#91;$init_pos - 23&#93;= chr&#40;0&#41;;
&#125;

$context = array &#40;
        'http' => array &#40;
            'method' => 'POST',
            'header'=> "Content-type&#58; application/binary\r\n"
                . "Content-Length&#58; " . strlen&#40;$data&#41; . "\r\n",
            'content' => $data
            &#41;
        &#41;;

$xcontext = stream_context_create&#40;$context&#41;;
$str=file_get_contents&#40;"http&#58;//www.google.com/glm/mmap",FALSE,$xcontext&#41;;

if &#40;strlen&#40;$str&#41; > 10&#41; &#123;
  $lat_tmp = unpack&#40;"l",$str&#91;10&#93;.$str&#91;9&#93;.$str&#91;8&#93;.$str&#91;7&#93;&#41;;
  $lat = $lat_tmp&#91;1&#93;/1000000;
  $lon_tmp = unpack&#40;"l",$str&#91;14&#93;.$str&#91;13&#93;.$str&#91;12&#93;.$str&#91;11&#93;&#41;;
  $lon = $lon_tmp&#91;1&#93;/1000000;
  echo "Lat=$lat <br> Lon=$lon";
  &#125; else &#123;
  echo "Not found!";
  &#125;

?>

Аватара пользователя
Yurik
Опытный нетмониторщик
Сообщения: 177
Зарегистрирован: Чт, 18-05-2006, 00:33
Откуда: Москва / Сафоново (Смоленская обл)
Нетмонитор: HTC Hero, Siemens S55 + Netmonitor Logger on hp hx2110

Сообщение Yurik »

Пример строки запроса для Яндекса:
http://mobile.maps.yandex.net/cellid_lo ... llid=45157
Netlog
Известный нетмониторщик
Сообщения: 469
Зарегистрирован: Пн, 02-02-2004, 21:46
Откуда: Ростов на Дону
Нетмонитор: Siemens S35
Контактная информация:

Сообщение Netlog »

McMaster писал(а):ну так что, хочется новый скриптик Яндекс-Питон :)
ТАк ведь и старый работает!

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

# -*- coding&#58; cp1251 -*- 
operatorid = 02 
countrycode = 250 
i = 0 

import urllib2,sys,datetime 
#proxy = "92.207.45.14&#58;8080" 
#proxy = "127.0.0.1&#58;3128" 
#proxy = urllib2.ProxyHandler&#40;&#123;"http" &#58; proxy&#125;&#41; 
#opener = urllib2.build_opener&#40;proxy&#41; 
#urllib2.install_opener&#40;opener&#41; 


now = datetime.datetime.now&#40;&#41; 
now_s = str&#40;now.year&#41;.zfill&#40;4&#41; + "-" + str&#40;now.month&#41;.zfill&#40;2&#41; + "-" + str&#40;now.day&#41;.zfill&#40;2&#41; + "_" + str&#40;now.hour&#41;.zfill&#40;2&#41; + "-" + str&#40;now.minute&#41;.zfill&#40;2&#41; + "-" + str&#40;now.second&#41;.zfill&#40;2&#41; + ".wpt" 
file = open&#40;now_s,"w"&#41; 
file.write&#40;'OziExplorer Waypoint File Version 1.0\nWGS 84\nReserved 2\nReserved 3\n'&#41; 

for cellid in range&#40;65537&#41;&#91;600&#58;610&#93;&#58; 
  print &#40;'-', cellid&#41; 
  for lac in range&#40;65537&#41;&#91;6107&#58;6108&#93;&#58;    
   try&#58; 
    data = urllib2.urlopen&#40;'http&#58;//mobile.maps.yandex.net/cellid_location/?&cellid='+str&#40;cellid&#41;+'&operatorid='+str&#40;operatorid&#41;+'&countrycode='+str&#40;countrycode&#41;+'&lac='+str&#40;lac&#41;&#41; 
    r = data.read&#40;&#41; 
#    r = '<?xml version="1.0" encoding="UTF-8"?><location><coordinates latitude="47.2439194" longitude="39.5267181"  nlatitude="47.2376213" nlongitude="39.5359650" /></location>' 
    if r.find&#40;'Not found'&#41;<>16&#58; 
      i0,i1,i2 = r.index&#40; 'coordinates latitude="'&#41;, r.index&#40; '" longitude="'&#41;, r.index&#40; '"  nlatitude="'&#41; 
      lat = float&#40;r&#91;i0+22&#58;i1&#93;&#41; 
      lon = float&#40;r&#91;i1+13&#58;i2&#93;&#41; 
      i = i+1 
      print &#40;lac, cellid, '-',lat ,lon&#41; 
      file.write&#40;'%d, %d-%d, %f, %f\n' % &#40;i, lac, cellid, lat ,lon&#41;&#41; 
    else&#58; 
     print &#40;'-', lac, cellid, '- no data in yandex'&#41; 
   except&#58; 
    print &#40;'connect error', lac, cellid, r&#41; 
file.close&#40;&#41;
Nick
Опытный нетмониторщик
Сообщения: 112
Зарегистрирован: Пн, 04-07-2005, 15:42
Откуда: SPb
Нетмонитор: N95 + ftd, 6230i + ftd

Сообщение Nick »

Давно понял, что Google Maps может оределять местоположение по сотовым операторам, но такого не видел еще:
Изображение
:o
rustam79
Начинающий нетмониторщик
Сообщения: 10
Зарегистрирован: Ср, 20-05-2009, 18:52
Откуда: Пермский край
Нетмонитор: N73-1, N82
Контактная информация:

Сообщение rustam79 »

Ребят, я ничё в этом не понимаю, но хотелось бы для своего Пермского края прогу, дабы отсканировать все БС и сектора к ним всей тройки. Кто поможет сделать? Очень надо.
Аватара пользователя
Samara-Mobile.ru
Известный нетмониторщик
Сообщения: 853
Зарегистрирован: Вс, 11-02-2007, 20:47
Откуда: г.Самара
Нетмонитор: HTC HD2, TEMS Pocket Nokia6720, TEMS Ericsson 520, Sagem OT290, QVoice Nokia6680 FT, Nemo Handy N80, QVoice Nokia N95, Nokia E52 FTD

Сообщение Samara-Mobile.ru »

rustam79 писал(а):Ребят, я ничё в этом не понимаю, но хотелось бы для своего Пермского края прогу, дабы отсканировать все БС и сектора к ним всей тройки. Очень надо.
:-D Нафига?
rustam79
Начинающий нетмониторщик
Сообщения: 10
Зарегистрирован: Ср, 20-05-2009, 18:52
Откуда: Пермский край
Нетмонитор: N73-1, N82
Контактная информация:

Сообщение rustam79 »

Немного странный вопрос. А зачем люди нетмониторят? Я базу всей тройки хочу составить. Для себя
Аватара пользователя
Samara-Mobile.ru
Известный нетмониторщик
Сообщения: 853
Зарегистрирован: Вс, 11-02-2007, 20:47
Откуда: г.Самара
Нетмонитор: HTC HD2, TEMS Pocket Nokia6720, TEMS Ericsson 520, Sagem OT290, QVoice Nokia6680 FT, Nemo Handy N80, QVoice Nokia N95, Nokia E52 FTD

Сообщение Samara-Mobile.ru »

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

Сообщение McMaster »

rustam79 писал(а):Ребят, я ничё в этом не понимаю, но хотелось бы для своего Пермского края прогу, дабы отсканировать все БС и сектора к ним всей тройки. Кто поможет сделать? Очень надо.
ну это можно и скриптом выкачать, надо знать нумерацию CID и LAC
rustam79
Начинающий нетмониторщик
Сообщения: 10
Зарегистрирован: Ср, 20-05-2009, 18:52
Откуда: Пермский край
Нетмонитор: N73-1, N82
Контактная информация:

Сообщение rustam79 »

Я всё это знаю и диапазон CID и LAC. Где взять скрипт? На чём его запускать надо будет: компе или мобиле?
kostpolt
Начинающий нетмониторщик
Сообщения: 11
Зарегистрирован: Ср, 30-12-2009, 16:37
Откуда: Ukraine
Нетмонитор: Nokia 6600, ASUS P750

Сообщение kostpolt »

Запускать на компе с доступом к инету. Может можно и на телефоне, если есть оболочка.
Netlog
Известный нетмониторщик
Сообщения: 469
Зарегистрирован: Пн, 02-02-2004, 21:46
Откуда: Ростов на Дону
Нетмонитор: Siemens S35
Контактная информация:

Сообщение Netlog »

rustam79 писал(а):Я всё это знаю и диапазон CID и LAC. Где взять скрипт? На чём его запускать надо будет: компе или мобиле?
Скрипт - вверху страницы.
Питон - http://www.python.org/ftp/python/2.7.2/python-2.7.2.msi
Ответить