Как я могу использовать MAC-адрес для получения координат GPS?

Я знаю, что существуют такие сервисы, как skyhook, но я просто не могу найти API или информацию о том, как его использовать. У меня есть список MAC-адресов из беспроводных или даже проводных сетей, и я хочу получить триангулированные GPS-координаты пользователя.

РЕДАКТИРОВАТЬ: Кто-то упомянул, что вы не можете получить информацию о MAC-адресе? В Windows 7 я сделал «netsh wlan show network mode=bssid» и вижу следующее. Я предполагаю, что адрес в BSSID является статическим и, по крайней мере, коррелирует?

SSID 6 : linksys
Network type            : Infrastructure
Authentication          : WPA-Personal
Encryption              : TKIP
BSSID 1                 : 00:0c:41:19:56:7b
     Signal             : 15%
     Radio type         : 802.11g
     Channel            : 6
     Basic rates (Mbps) : 1 2 5.5 11
     Other rates (Mbps) : 6 9 12 18 24 36 48 54

SSID 7 : KSJ
Network type            : Infrastructure
Authentication          : Open
Encryption              : WEP
BSSID 1                 : 00:18:01:95:e7:ca
     Signal             : 30%
     Radio type         : 802.11g
     Channel            : 2
     Basic rates (Mbps) : 1 2 5.5 11
     Other rates (Mbps) : 6 9 12 18 22 24 36 48 54

SSID 8 : benchhome
Network type            : Infrastructure
Authentication          : WPA-Personal
Encryption              : TKIP
BSSID 1                 : 00:0f:b5:e3:2e:24
     Signal             : 23%
     Radio type         : 802.11g
     Channel            : 11
     Basic rates (Mbps) : 1 2 5.5 11
     Other rates (Mbps) : 6 9 12 18 24 36 48 54

person esac    schedule 13.12.2009    source источник


Ответы (3)


Для справки, если вы не припаркованы в той же подсети, что и MAC-адрес, и не имеете активного соединения, т. е. если вы получили IP-адрес от точки доступа, невозможно определить IPv4-адрес точки доступа Wi-Fi без учета внешних факторов (даже при наличии MAC-адреса). Мне любопытно, как Стивен предлагает решить эту проблему (поскольку это не похоже на то, что вы подключаетесь к этим сетям). И нет, ARP вам здесь не поможет.

Также стоит подумать о точке доступа Wi-Fi, которая идентифицирует себя с помощью адреса RFC 1918. . Моя точка доступа имеет IP-адрес 192.168.250.1 и имеет свой собственный шлюз по умолчанию в восходящем направлении. Что даст геолокация IP-адреса на моей точке доступа?


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

Причина, по которой SkyHook работает на уровне MAC-адресов и улиц, заключается в том, что службы GeoIP по своей сути бесполезны. У моего работодателя есть /20, выделенные RIPE, о которых было объявлено из Лондона; поскольку мой работодатель — компания из США, почти каждый сервис GeoIP находит эти IP-адреса в Нью-Джерси. Я удивлен, что мало систем GeoIP утруждают себя проверкой объявляющего ASN, но я отвлекся...

Тем не менее, SkyHook объединяет известные MAC-адреса точек доступа Wi-Fi (без IPv4) с сотовой триангуляцией, чтобы получить чертовски точную информацию. Согласно самой SkyHook, похоже, что база данных в основном основана на отправке пользователями точек доступа. Согласно отправить AP, они работают с MAC-адресами:

[...] или узнать, что такое MAC-адрес и как его получить, посетите сайт поддержки Skyhook.

Кажется, самым большим преимуществом их сервиса является база данных точек доступа. Вам вообще не нужно делать GeoIP, вам нужны только те данные, которые у них есть. Я так понимаю, дыра на рынке для проекта с открытым исходным кодом?

person Jed Smith    schedule 13.12.2009
comment
Я никогда не предполагал, что вы можете разрешить MAC-адрес точки доступа, но вы можете разрешить IP-адрес клиента по MAC-адресу ... IP-адреса выдаются MAC-адресам, а MAC-адреса можно запрашивать через ARP. - person monksy; 14.12.2009
comment
Вы предполагаете, что он может подключиться к этим точкам доступа, и что он не использует их для географического положения. SkyHook не подключается к видимым MAC-адресам точек доступа; он просто сообщает о них в свою базу данных и вычисляет местоположение. IPv4 не устанавливается, не назначается и не выдается до тех пор, пока клиент не установит соединение, и вы никогда не сможете прослушать или увидеть ARP, пока такое соединение не будет установлено. Кроме того, вы не понимаете, что многие точки доступа раздают 192.168/16 адреса — как это вам поможет? - person Jed Smith; 14.12.2009
comment
Это поможет вам, потому что тогда вы можете выполнить эквивалентную трассировку, чтобы узнать, кто является хостом... Затем у вас есть интернет-провайдер. Я никогда не упоминал о местоположении устройств, я утверждал, что устройства редко перемещаются... таким образом, у вас есть MAC-адрес этого [который вы можете найти в БД... (я не добавлял это, потому что вы разместил немного о БД после того, как понял, что я этого не сделал)] - person monksy; 14.12.2009
comment
Вы упускаете мою мысль. traceroute использует IPv4. Вы не можете видеть, обрабатывать или транслировать ARP или общаться по IPv4, пока вы не установили соединение с точкой доступа, а задающий вопрос выполняет геолокацию и не подключается к рассматриваемым точкам доступа. - person Jed Smith; 14.12.2009
comment
Кроме того, ARP выдает MAC-адрес только для заданного IPv4-адреса и никогда не предназначался для обратного. - person Jed Smith; 14.12.2009
comment
Просто любопытно, почему вы говорите, что не можете получить MAC-адрес точки доступа. Я предполагаю, что адрес, выдаваемый из BSSID, один и тот же, но даже если они различаются, разве они не часто статичны? Смотрите мою правку. - person esac; 14.12.2009
comment
Наоборот: я говорю, что вы можете получить MAC-адрес из наблюдаемых широковещательных передач SSID, но вы не можете получить IPv4-адрес из MAC-адреса (который, по словам Стивена, можно использовать для GeoIP) без подключения к этому. - person Jed Smith; 14.12.2009
comment
О, я полностью согласен с этим, и почему я должен основывать свой запрос только на MAC-адресе. Проголосовал. Я думаю, что все сводится к тому, что вы говорите. Это ниша/дыра для проекта с открытым исходным кодом. - person esac; 14.12.2009

Система Skyhook работает только для мобильных устройств. Он использует либо GPS (из собственного программного обеспечения GPS устройства), знание местоположения используемой точки доступа Wi-Fi или триангуляцию от используемых вышек сотовой связи.

Подробности здесь.

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

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

Запасным вариантом является использование геолокации IP-адреса, что, как я уже упоминал в своем комментарии выше, очень и очень неточно и на самом деле используется только для развлечения.

person Jeremy McGee    schedule 13.12.2009

Вам нужно будет преобразовать MAC-адрес в IP-адрес, а затем выполнить поиск хоста по IP-адресу. (Это сообщит вам интернет-провайдера, под которым подключен пользователь). Маловероятно, что вы получите точное местоположение из этого. Однако вы можете определить страну и/или город, в котором в настоящее время находится MAC-адрес.

С IP-адресом вы можете использовать службу/базу данных, такую ​​как GeoIP, чтобы получить некоторую географическую информацию об IP-адресе. Для местоположения интернет-провайдера вам нужно найти базу данных местоположений интернет-провайдеров.

Я взглянул на сайт SkyHook: вот как они делают то, что делают:

  1. Точки доступа Wi-Fi. Многие точки Wi-Fi не меняются, поэтому это помогает определить, где может находиться пользователь.
  2. Вышки сотовой связи, они находятся в известных местах, и с 3 точками или более вы можете триангулировать очень точное местоположение пользователя с сильными сторонами.

Microsoft также имеет аналогичную функцию с VirtualEarth.

person monksy    schedule 13.12.2009
comment
Я знаю, что это возможно. Eye-Fi использует SkyHook, чтобы определить это. Может быть, у них есть партнерство, или API SkyHook является эксклюзивным. Вероятно, у них просто есть база данных MAC-адресов и GPS-координат. Это было бы очень просто создать, но если бы я мог каким-то образом использовать скайхук или что-то подобное, это сэкономило бы мне много времени. - person esac; 14.12.2009
comment
Они /невероятно/ неточны. Домашние сервисы, определяющие геолокацию моего ADSL, разместили меня в Рочдейле, штат Западный Йорк, примерно в 450 милях от меня. На работе я либо в Эйндховене, Нидерланды, либо в Турку, Финляндия. Оба даже не одна и та же /страна/. - person Jeremy McGee; 14.12.2009
comment
Как я уже сказал... он идет к вашему (базовому) интернет-провайдеру - person monksy; 14.12.2009
comment
Я -1'ing вам из-за причин в моем ответе. - person Jed Smith; 14.12.2009
comment
У меня были смешанные результаты с базами данных GeoIP ... большинство из них находится в нескольких штатах ... некоторые в том же городе ... - person monksy; 14.12.2009