Программно получить город / штат MacBook из командной строки? - PullRequest
0 голосов
/ 01 апреля 2012

Есть ли способ получить местоположение или город / штат из MacBook программно?Это не должно быть очень точным, просто интересно, возможно ли это.

Что-то без удаленного доступа к сервису GeoIP.

Ответы [ 2 ]

1 голос
/ 01 апреля 2012

РЕДАКТИРОВАТЬ (оригинальный ответ ниже)
Я начал GitHub репозиторий, чтобы сделать точно так, как описано ниже: https://github.com/inspector-g/getloc

Из-за ограниченного времени сегодня было проще / быстрее просто использовать типичные приемы геолокации внешнего IP. Он отлично работает на всех машинах, на которых я его тестировал. Тем не менее, я разместил все необходимые заглушки CoreLocation для будущего использования. Если у меня будет больше времени на этой неделе, я мог бы внедрить сторонний MapKit для Mac OS X (как упомянуто ниже).

Оригинальный ответ
Для этого нет встроенных программ командной строки. Вы можете сделать это самостоятельно, создав программу командной строки Cocoa в XCode следующим образом ...

Начиная с Mac OS 10.6, вы можете получить местоположение широты / долготы пользователя с помощью CLLocationManager. В классе вы хотели бы быть делегатом информации о местоположении:

locationManager = [[CLLocationManager alloc] init];
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.delegate = self;
[locationManager startUpdatingLocation];

С locationManager, являющимся членом класса. Для получения сообщений от CLLocationManager ваш класс делегата должен будет реализовать следующие методы:

-(void) locationManager:(CLLocationManager*)manager
        didUpdateToLocation:(CLLocation*)newLocation
        fromLocation:(CLLocation*)oldLocation;

-(void) locationManager:(CLLocationManager*)manager
        didFailWithError:(NSError*)error;

Теперь, когда вы все настроили и получили CLLocation экземпляры в этих методах, как вы получаете информацию о городе, штате или другой географической информации из данных широты и долготы в CLLocation? Вы нет! Apple не предоставляет обратный геокодер для Mac OS X (только iOS).

Однако, чтобы восполнить пробел, была выпущена довольно приличная библиотека, соответствующая функциям MapKit на iOS: http://github.com/Oomph/MacMapKit

Он на самом деле соответствует функциям MapKit и довольно неплохо работает. Желаем удачи:)

1 голос
/ 01 апреля 2012

В двух частях: (немного взломать)

Получи свой ipaddress:

ifconfig | grep "inet addr" | grep -v '127\.0\.0\.1' | tr ':' ' ' | awk '{print $3}'

Посмотри наверхваш адрес с таблицей: http://ipinfodb.com/linux_script.php

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...