ÛãçèØÃÂ¥ Ã’ØàãáÞÃÂ’ - Xakep Online
ÛãçèØÃÂ¥ Ã’ØàãáÞÃÂ’ - Xakep Online
ÛãçèØÃÂ¥ Ã’ØàãáÞÃÂ’ - Xakep Online
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
pc_zone<br />
СТЕПАН ИЛЬИН<br />
/ STEP@GAMELAND. RU/<br />
НАВИГАЦИЯ<br />
БЕЗ GPS<br />
Как определить свои координаты по IP, GSM/UMTS и Wi-Fi<br />
Тысячи лет назад о такой штуке, как GPS, никто не мог даже мечтать.<br />
Но моряки и путешественники отлично справлялись с навигацией,<br />
используя компас и карты, солнце и звезды. Сейчас — век цифровой,<br />
но тоже есть немало способов определить месторасположение без<br />
всяких там систем глобального позиционирования.<br />
Спору нет, GPS — классная штука, но что делать, если приемника<br />
под рукой нет? Далеко не у каждого есть встроенный чип в мобиле.<br />
Да и владелец автомобиля совсем не обязательно успел обзавестись<br />
устройством навигации. Так как же быть? Если не брать в расчет редкие и<br />
экзотические варианты, то основных способа три:<br />
1. Определить IP и с помощью специальной базы данных определить<br />
город, в котором находишься, и нередко — долготу и широту.<br />
2. Определить расположение по находящимся рядом базовым станциям<br />
GSM/UMTS. Это возможно при наличии базы данных с идентификаторами<br />
вышек и их координатами.<br />
3. Использовать для вычисления широты и долготы информацию о<br />
находящихся рядом точках доступа Wi-Fi, передав запрос с их характеристиками<br />
на специальный сервер.<br />
Итак, начнем с самого простого.<br />
IP НАМ В ПОМОЩЬ<br />
Когда мне нужно проверить свой внешний IP, чтобы убедиться,<br />
например, что я включил VPN или прокси, я всегда использую сервис<br />
ip2location.com. Приятно, что, помимо самого IP-адреса, выводится<br />
информация о провайдере, его месторасположении (город, страна,<br />
штат), а зачастую… еще и координаты. Само собой, в базе не будут<br />
указаны широта и долгота для самого обычного клиента интернет-услуг.<br />
Как правило, данные указываются для провайдера, реже — для крупных<br />
компаний, имеющих большие диапазоны статических IP. Получается,<br />
что, подключившись к сети (например, через любой открытый hotspot<br />
или просто воспользовавшись компьютером), можно с большой долей<br />
вероятности определить примерное место, где ты находишься. Конечно,<br />
способ примитивный — и более того, самый неточный из всех представленных<br />
в этой статье. С другой стороны, это реальный шанс определить<br />
месторасположение, всего лишь открыв страничку в интернете. А если<br />
сварганить специальный трекер, установить его на КПК и отслеживать<br />
IP-шники, которые он получает при коннекте к открытым WiFi-сетям, то<br />
реально вычислить передвижения девайса.<br />
Использовать сервис в чистом виде, а именно — переходя браузером<br />
по ссылке ip2location.com, скучно и беспонтово. Месторасположение на<br />
карте не увидеть, лог не сохранить, а сама страница слишком тяжелая<br />
для мобильного инета — короче, это не наш путь. От сервиса нам нужно<br />
только одно — база соответствий разных IP-адресов их расположению,<br />
которую ip2location предлагает приобрести за довольно разумные<br />
деньги. Само собой, подобные базы быстро расплываются по варезным<br />
порталам и торрентам, причем в двух вариантах: .cvs (текстовом) и .bin<br />
(бинарном). С такой базой несложно заточить любое приложение под<br />
себя. Правда, IP-адрес в базе хранится в специальном цифровом виде<br />
без точек и разделения на октеты, но следующая PHP-функция поможет<br />
привести обычный IP-шник к нужному виду:<br />
function Dot2LongIP ($IPaddr)<br />
{<br />
if ($IPaddr == "") {<br />
return 0;<br />
} else {<br />
$ips = split ("\.", "$IPaddr");<br />
return ($ips[3] + $ips[2] * 256 + $ips[1] * 256 * 256<br />
+ $ips[0] * 256 * 256 * 256);<br />
}<br />
}<br />
Имея такой ключ для адреса, ничего не стоит найти соответствующие<br />
026<br />
XÀÊÅÐ 04 /124/ 09