Это один из тех, "безусловно, есть какая-то универсальная утилита, которая лучше, чем быстрая и грязная вещь, с которой я столкнулся ". Как и в России, я знаю, как сделать это несколькими специальными способами, но хотел бы используйте стандарт.
КРАТКИЙ ОБЗОР: Я ищу разумно стандартные и вездесущие инструменты для определить мое нынешнее географическое положение. Вызывается из Linux/UNIX командной строки, Perl, Emacs и т.д.
ДЕТАЛЬ:
Тривиальная ситуация внушает этот вопрос (но, несомненно, более важные приложения): я использую emacs org-mode, часто для записи журнал или дневник. Я вообще не использую официальный дневник в режиме org-mode - в основном, я удаляю временные метки в обычном журнале режима org, метаданные, которые выглядят как ссылка.
[[metadata: timestamp="<2014-01-04 15:02:35 EST, Saturday, January 4, WW01>" <location location="??" timestamp="??"/>][03:02 PM]]
Как вы можете видеть, я давно добавил способность записывать мои место нахождения. Но до сих пор мне приходилось устанавливать его вручную. Я ленив, и часто пренебрегают установкой местоположения вручную. (Незначительное примечание: я записал в последний раз, когда я вручную устанавливаю местоположение, полезно при перемещении и пренебречь вручную изменить свое местоположение.
Я бы предпочел иметь код, который автоматически меняет место нахождения. В частности, поскольку я довольно много путешествовал по в прошлом месяце, но, вероятно, более полезно для полудюжины или около того местами я перемещаюсь между деньгами: дом, работа, океан, стандартные рестораны Я ем рабочий обед или завтрак.
Я могу определить свое местоположение с помощью любого из нескольких инструментов, таких как
-
Где я - см. текущее местоположение на Картах Google - ctrlq.org/maps/where/
-
Perl CPAN-пакеты, такие как IP:: Location - для сопоставления IP-адреса в местоположении
- note: не обязательно работает для частного IP-адреса, за NAT
- но может сочетаться с traceroute
и эвристики, такие как просмотр SSID WiFi и т.д.
Я уже что-то закодировал.
Но... там больше глубины, чем я закодировал.
Ни один из вышеприведенные методы являются совершенными. У меня может не быть net.connectivity, и т.д. Некоторые из них специфичны для ОС.
Если уже есть средство с открытым исходным кодом, я должен использовать это.
Поэтому мой вопрос: есть ли разумно вездесущая служба геолокации?
Мой список пожеланий
-
Работает с ОС OS
- Cygwin
- Linux
- Android? OS-X? (просто используйте стандарт ОС)
- например. пытается выполнить команду, такую как Windows netsh, и если это не удается...
-
Утилита командной строки
- Perl и т.д.
- вызываемый в emacs
- потому что я хочу использовать его
- но я уверен, что хотел бы использовать его в других местах.
-
Может подключаться к широко доступным стандартным службам геолокации
- например. Perl CPAN IP:: Местоположение, IP- > страна/город/...
- например. Google и т.д., Вывести географическое расположение из браузера.
-
Работает даже тогда, когда не удается подключиться к стандартным службам геолокации или интернету
- например. кеш последнего местоположения
- например. способность связывать имя с частной сетевой средой
- например. если в лаборатории, изолированной от сети
- или дома, подключенный к Wi-Fi, но широкополосный доступ вниз.
- например. посмотрите Wi-Fi SSID.
-
Настраиваемый
- может использовать информацию, которая НЕ является частью любой вездесущей базы геолокации
- например. Я могу признать некоторые SSID как мой дом или офис.
-
Узнал
- Знает (или может узнать), что некоторые SSID являются мобильными, а не географически фиксированными (например, мобильная точка доступа на моем телефоне).
- но некоторые из них (в основном) географически закреплены (например, WiFi дома подключена к кабельному модему).
-
Обучение
- может переопределять неверные высылки (иногда геоданные ошибочны, особенно VPN)
- может распространяться или делать точную
- Я бы не прочь написать правила.
- но еще лучше, если какой-либо механизм вывода поддерживает сами правила.
- например. если я исправлю местоположение, сделайте выводы о SSID-координатах, используемых для ошибочного вывода
-
эвристика
- Windows 7 "netsh wlan show interfaces"
- Windows/Cygwin ipconfig
- * IX ifconfig
- traceroute/tracert
- обратный поиск по IP-адресу
-
Кэширование
- чтобы избежать дорогостоящих поисков.
- но кеш не является глобальным - может быть сделано для каждого приложения
- некоторые приложения могут обойти кеш
- другие могут использовать старые данные