admin / 30.10.2018

Местоположение базовых станций

.

Очевидный вопрос, зачем обычному пользователю поиск базовых станций сотовой связи, особенно сейчас, когда мобильные операторы обеспечивают устойчивое соединение. Однако картина резко меняется при переходе в сельскую местность или на окраины крупных городов. Уровень сигнала и зона его покрытия могут стать важными факторами при выборе оператора, полезная подобная информация также для контроля радиоэлектронной обстановки.

Программный подход к мониторингу сети

Наиболее эффективно поиск базовых станций сетей сотовой связи производится программными средствами. Это избавляет пользователя от поиска нужного веб сайта в сети Интернет, делая сервис максимально быстрым и комфортным.

Альтернативным вариантом может служить умение пользоваться незадекларированными функциями мобильных устройств. Многие смартфоны проводят мониторинг сети по специальному запросу: необходимо ввести специфический код. Однако услуга не охватывает все модели устройств.

Поэтому, оптимальным решением остается использование софта, например приложения NetMonitor.

Среди достоинств данной программы первоочередно необходимо выделить ее кросс-платформенность. Приложение надежно работает на таких системах как Android, IOS, Symbian и конечно же Windows.

Следующий положительный фактор: поиск базовых станций доступен независимо от производителя или модели телефона.

Карта базовых станций сотовой связи

Определенные ограничения, связанные со спецификой бренда остались, однако работа над их решением ведется и существенного влияния на качество сервиса они не оказывают. Например, определенные Samsung-устройства не всегда отображают уровень сигнала.

Определение географических координат

Альтернативно, NetMonitor — программа для определения местоположения телефона, особенно при отсутствии на нем GPS модуля. Выполнив мониторинг сети, несложно определить базовую станцию и требуемые коды:

  • MCC, страны действия сотовой компании;
  • MNC, мобильного оператора;
  • LAC, локальной зоны;
  • CID, идентификатора соты.

Конечно, определение локального местоположения мобильного устройства по базовым станциям не настолько точный метод, как GPS, однако сориентироваться на местности за пределами города это поможет.

Максимальная информативность, дополненная наглядностью графического восприятия

Что касается непосредственно сервиса поиска базовых станций сетей сотовой связи, NetMonitor не ограничивается только их обнаружением. По каждой станции выдается следующая информация:

  • уровень сигнала;
  • тип сети;
  • обслуживающий мобильный оператор;
  • прочие параметры.

Дополнительно настроен сервис по мониторингу WiFi сети.

Беспроводной интернет, пользуется не меньшим спросом, чем мобильная связь. Такая информация, как местоположение точек доступа WiFi крайне важна для пользователя и входит в сервис NetMonitor.

Наглядную ориентацию на местности при поиске базовых станций сотовой связи обеспечивает поддержка приложения картами Google. Все передаваемые данные сопровождаются графическим отображением на карте, включая особенности ландшафта и возведенные здания. Дополнительную наглядность восприятия задают разнообразные таблицы и графики, например временной зависимости уровня сигнала.

Информационная поддержка выражается в регулярно обновляемой базе данных расположения GPS станций и WiFi покрытия. Допускается экспорт данных в форматах CLF и KML, для работы с другими приложениями, например Google Earth.

Поэтому, пользователю, который собирается начать поиск базовых станций рекомендуем скачать NetMonitor прямо сейчас с нашего веб ресурса абсолютно бесплатно.

Published: Ср.

Как узнать координаты базовой станции GSM по MCC, MNC, LAC и CellID (CID).

31 Июль 2013 By Oleg Mazko

In Admin.

tags: GSMGoogle MapsBluetoothsocat

Сколько раз доводилось слышать, что криминальные элементы или правоохранительные органы могут определить местоположение телефона по его номеру. Это правда 🙂 Изначально GSM стандарты не разрабатывались для этих целей, поэтому, безусловно, точность полученных координат конечно же уступает всем известным GPS / ГЛОНАСС. В густонаселенных местах, где плотность базовых станций (такие закрытые будки с антеннами) большая точность повышается, а в сельской местности, на трассе соответственно уменьшается. Не особо углубляясь в теорию предлагаю посмотреть как в любое время можно определить местоположение ручками с помощью обычных AT-команд.

Итак, у каждого GSM модуля, зарегистрированного в сети мобильного оператора, всегда можно вполне легально запросить следующие параметры:

Для экспериментов можно задействовать любой мобильный телефон (либо GSM модуль типа sim900, если Вы дружите с паяльником), который имеет возможность подключения к ПК. Поскольку особого желания возиться с проводами нету, самый простой способ соединить телефон и компьютер — использовать Bluetooth. Посмотрим какие устройства доступны для подключения:

~$ hcitool scan Scanning … 00:11:22:33:44:55 Nokia 6300

Имея MAC адрес устройства, можем посмотреть список сервисов (вывод команды показан не весь):

~$ sdptool browse 00:11:22:33:44:55 Browsing 00:11:22:33:44:55 … …… Service Name: COM 1 Service RecHandle: 0x10002 Service Class ID List: "Serial Port"(0x1101) Protocol Descriptor List: "L2CAP"(0x0100)"RFCOMM"(0x0003) Channel: 3 Language Base Attr List: code_ISO639: 0x656e encoding: 0x6a base_offset: 0x100 ……

Цепляемся к :

~$ rfcomm connect 000:11:22:33:44:55 3 Connected /dev/rfcomm0 to 00:11:22:33:44:55 on channel 3 Press CTRL-C for hangup

Теперь мы можем подключиться к последовательному порту :

# cu -l /dev/rfcomm0# screen /dev/rfcomm0# minicom ~$ putty -serial /dev/rfcomm0

После запуска открывается окошко, в котором можно писать AT-команды:

Отлично. Нас интересуют две AT-команды: и , которые имеют настраиваемый формат ответа — задаём тот, который устроит:

AT+COPS=0,2 OK AT+CREG=2 OK

Всё готово — запрашиваем MCC, MNC, LAC, CID:

AT+COPS? +COPS: 0,2,"25501",0 OK AT+CREG? +CREG: 2,1,"8174","EA45" OK

В сети полно онлайн сервисов, которые позволяют преобразовать MCC=255, MNC=01, LAC=8174, CID=EA45 в координаты Latitude, Longitude, но, как всегда, Гуголь знает всё:

pygsm.py

#!/usr/bin/pythonMMAP_URL='http://www.google.com/glm/mmap'GOOGLE_MAPS_URL='http://maps.google.com'importshleximportcsvimporturllib2importserial# pip install pyserialimporttimedeffetch_cell_from_serial(comm='/dev/rfcomm0'):# open serial and setup GSM moduleser=serial.Serial(comm)ser.write('AT+COPS=0,2\r')ser.write('AT+CREG=2\r')# Get MCC and MNCser.write('AT+COPS?\r')time.sleep(1)out=ser.read(ser.inWaiting())# out >>> 'AT+COPS?\r\r\n+COPS: 0,2,"25501",0\r\n\r\nOK\r\n'tmp=shlex.split(out)# tmp >>> ['AT+COPS?', '+COPS:', '0,2,25501,0', 'OK']tmp=tmp[tmp.index('+COPS:')+1]# '0,2,25501,0'tmp=csv.reader([tmp])tmp=[rowforrowintmp][-1]# ['0', '2', '25501', '0']mcc_mnc_dec=int(tmp[-2],16)# 152833# Get LAC and CIDser.write('AT+CREG?\r')time.sleep(1)out=ser.read(ser.inWaiting())# out >>> 'AT+CREG?\r\r\n+CREG: 2,1,"8174","EA45"\r\n\r\nOK\r\n'tmp=shlex.split(out)# tmp >>> ['AT+CREG?', '+CREG:', '2,1,8174,EA45', 'OK']tmp=tmp[tmp.index('+CREG:')+1]# '2,1,8174,E76A'tmp=csv.reader([tmp])tmp=[rowforrowintmp][-1]# ['2', '1', '8174', 'E76A']lac_dec=int(tmp[-2],16)# 33140cid_dec=int(tmp[-1],16)# 59242returncid_dec,lac_dec,mcc_mnc_decdefget_location_by_cell(cid_dec,lac_dec,mcc_mnc_dec):# Use Google to get coordinatesa='000E00000000000000000000000000001B0000000000000000000000030000'h1,h2=divmod(mcc_mnc_dec,100)# 152833 >>> (1528, 33)b=hex(cid_dec)[2:].zfill(8)+hex(lac_dec)[2:].zfill(8)# b >>> '0000e76a00008174'c=hex(h1)[2:].zfill(8)+hex(h2)[2:].zfill(8)# c >>> '000005f800000021'data=(a+b+c+'FFFFFFFF00000000').decode('hex')response=urllib2.urlopen(MMAP_URL,data)res_hex=response.read().encode('hex')# res_hex >>> '000e1b0000000002e5bfbd020f49a50000097b0000004b0000'latitude=float(int(res_hex[14:22],16))/1000000# 48.611261longitude=float(int(res_hex[22:30],16))/1000000# 34.556325returnlatitude,longitudedefformat_googlemaps_link(latitude,longitude):return'%s?q=%f,%f'%(GOOGLE_MAPS_URL,latitude,longitude)if__name__=='__main__':cid_dec,lac_dec,mcc_mnc_dec=fetch_cell_from_serial()lat,lon=get_location_by_cell(cid_dec,lac_dec,mcc_mnc_dec)printformat_googlemaps_link(lat,lon)

Скрипт написан на питоне и использует для коммуникации с последовательным портом.

~$ python pygsm.py http://maps.google.com?q=48.611261,34.556325

ПОЛЕЗНЫЕ ТРЮКИ

Данные обмена можно снифить:

#apt-get install socat ~$ socat -d -v -x \ PTY,link=/dev/ttyNONGREEDY,raw,perm=777,echo=0\ /dev/rfcomm0,raw #echo -e 'AT\r' > /dev/ttyNONGREEDY > 2014/01/11 11:34:08.565031 length=4from=0to=34154 0d 0a AT..

— < 2014/01/11 11:34:08.743405 length=6from=0to=5 0d 0a .. 4f 4b 0d 0a OK.. —

Порой для корректной работы необходимо задать источнику скорость:

~$ socat -d -v -x \ PTY,link=/dev/ttyNONGREEDY,raw,perm=777\ /dev/ttyUSB0,raw,b115200

Если нужно пробрасить последовательный порт по сети от одного компа к другому:

~$ wget -O tcp_serial_redirect.py \ http://sourceforge.net/p/pyserial/code/HEAD/tree/trunk/\ pyserial/examples/tcp_serial_redirect.py?format=raw ~$ python tcp_serial_redirect.py -b 115200 -p /dev/rfcomm0 —spy #ifconfig | grep -o 'inet addr:[^ ]*'#inet addr:192.168.1.246# на другом компе ~$ socat PTY,link=/dev/rfcomm0,perm=777 TCP:192.168.1.246:7777

Эмулировать устройство можно так:

~$ socat -d -v -x \ PTY,link=/dev/rfcomm0,raw,perm=777,echo=0\ PTY,link=/dev/ttyNONGREEDY,raw,perm=777,echo=0# echo -e 'AT\r' > /dev/rfcomm0 > 2014/01/11 12:31:37.585420 length=4from=0to=34154 0d 0a AT.. — < 2014/01/11 12:31:37.586518 length=7from=0to=64154 0d 0a AT.. 4f 4b 0a OK. — ~$ cat /dev/ttyNONGREEDY |whileread val;\doecho$val&&\echo$val > /dev/ttyNONGREEDY &&\echo'OK' > /dev/ttyNONGREEDY;\done AT

P.S. Совсем необязательно иметь ПК чтобы получить MCC, MNC, LAC, CID с телефона — просто так удобнее для текущей задачи. Большинство производителей предоставляют API для доступа к подобного рода данным из приложений, запускаемых в их телефонах. В этом случае можно (и даже нужно) обойтись без AT команд. Вот например API для мидлетов Nokia и т.д.

Навигация без GPS: как определить свои координаты по IP, GSM/UMTS и Wi-Fi

Проверка базы (HLR запросы) — проверка статуса номеров сотовых сетей GSM и очистка баз данных Ваших клиентов от неактуальных номеров. Проверка осуществляется путем отправки запросов в базу данных операторов с уточнением сведений о состоянии абонента в сотовой сети (данная база является ключевым компонентом сетей GSM, TDMA и CDMA).

Запросы позволяют установить состояние номера телефона клиента — активен или не обслуживается (так же возможно, но не гарантируется установление следующих параметров — нахождение абонента в роуминге или в домашней сети, MCC/MNC код мобильного оператора).

Данный сервис проверки номеров сохраняет конфиденциальность запроса, т.е. никаким образом не беспоклит абонентов.

Функция HLR запросов является оптимизирующим инструментом SMS рассылок и мобильного маркетинга, где особенно актуально, чтобы отправленные сообщения не только «дошли» до абонента, но и сделали это в разумный период времени. Организация подобного сервиса без HLR, как правило, ведет к потерям денежных средств.

Услуги HLR Lookup / Number Validation позволяют выполнять проверку списков с номерами телефонов или одиночные номера, определяя доступных и недоступных абонентов и позволяя осуществлять чистку баз данных от неактуальных номеров.

Что дальше?

Описание сервиса

Здесь вы можете узнать, где расположены базовые станции, используя LAC и CID (вам также необходимо знать MCC и MNC, но их значения можно получить без труда).

Как это работает

Нужно понимать, что сервис не может знать точное местоположение базовых станций, этой информации в свободном доступе нет. Вместо этого, вам будет показано примерное местоположение сектора, т.е. усредненные координаты места, в котором наибольшее количество абонентов регистрировалось в искомом секторе (по LAC и CID).

В данных от Яндекса, кроме координат сектора, будут координаты самой базовой станции, но и они являются примерными.

Работа сервиса на этом сайте строится на опросе четырех крупнейших геолокационных баз, содержащих информацию о координатах сотовых вышек — Google, Яндекс, OpenCellID, Mozilla Location Service. На данный момент наиболее полные и точные данные предоставляют базы Яндекса и Гугла, поэтому, если информация есть в обоих базах, сервис автоматически усредняет полученные от них значения и показывает наиболее точное местоположение сектора (красная метка на карте). Если же информация есть не во всех базах, то автоматически будут показаны наиболее точные данные от одного из сервисов. Естественно, при клике по соответствующим координатам, вы всегда можете посмотреть данные, выдаваемые каждым сервисом отдельно.

Вышки операторов сотовой связи

Дополнительно рекомендую ознакомиться с описанием различий между GSM и UMTS, а также со статьей Нетмониторинг, XXI век, в которой я подробно описал все параметры, используемые для определения местоположения в сетях GSM, UMTS и LTE.

Откуда данные?

Все просто — во всех базах лежат данные от самих пользователей. Самая большая база по всему миру, конечно, у Гугла, т.к. он получает информацию от миллионов владельцев смартфонов на базе ОС Android. Гугл просто следит за всеми пользователями и, если у вас включен Интернет, GPS и вставлена SIM-карта, ваше андроид-устройство непременно отправит данные о координатах и базовых станциях на свои сервера.

С Яндексом все немного сложней. Если слежку от Гугла мы получаем автоматически, впридачу к андроид-смартфону, то для того, чтобы за нами последил Яндекс, нужно установить и запустить какие-либо его приложения (например, Яндекс-карты).

А вот с сервисами от OpenCellID и Mozilla все гораздо честнее. Тут никто ни за кем не следит, но вы можете самостоятельно установить на свой смартфон приложение, заставив его отслеживать координаты и сотовые вышки и отправлять эти данные на сервер Mozilla.

Как помочь?

Просто скачайте и установите приложение MozStumbler. Чем больше людей скачают и запустят приложение, тем быстрее база Mozilla Location Service наберет необходимый объем данных, и тем точнее будет информация о местоположении секторов.

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*