Может ли Mac OS X быть настроен на автоматическую настройку интерфейса Airport со статическим IP-адресом при подключении к сети Wifi с определенным именем, а во всех других сетях Wifi использовать DHCP?
В настоящее время я использую функцию «Расположение» раздела «Сеть» в Системных настройках, чтобы вручную переключаться между двумя настройками IP-адреса. У меня есть настройка «мой статический IP» и настройка «DHCP» по умолчанию. Однако для этого необходимо ввести Системные настройки, чтобы каждый раз менять выпадающее меню при переключении мест. Это может быть автоматизировано?
Желательно, чтобы это было сделано без стороннего программного обеспечения.
источник
Можно обойтись без какой-либо третьей стороны, см. Https://github.com/rimar/wifi-location-changer
источник
Сторонним, несвободным решением, которое, вероятно, подойдет вам, является Locations .
Как следует из этого ответа на похожий, но не идентичный вопрос о stackoverflow, вы можете создать сценарий, который выполняется через регулярные промежутки времени.
launchd
предотвратит его запуск более одного раза.Psuedocode:
networksetup -getairportnetwork AirPort
networksetup -switchtolocation {location}
где {местоположение} является именем местоположения, которое вы хотите переключиться на основе найденной сети Wi-Fi.При подключении к локальному Wi-Fi, который не предоставляет DHCP-адрес, может возникнуть ситуация, когда вы настроены на ожидание адреса от DHCP.
-
Обновление: обнаружен возможный дубликат вопроса, который предлагает решение с открытым исходным кодом: MarcoPolo
источник
Поскольку данный ответ является ручным, вот простой скрипт, который автоматически его меняет:
Создайте различные местоположения в Системных настройках> Сеть, чтобы отразить каждую из ваших сетей WiFi.
Сценарий: (
/usr/bin/autolocation.sh
) Поместите это в нужное место и измените значения SSID в сценарии в соответствии с вашим сценарием.Этот сценарий изменит местоположение (настройки) сети на основе SSID беспроводной сети. Теперь, это должно быть выполнено всякий раз, когда есть изменение в настройках сети. Мы создадим агент запуска, чтобы сделать то же самое.
запустил plist: (
~/Library/LaunchAgents/com.vg.netwatcher.plist
)Я создал этот файл в
~/Library/LaunchAgents
(внутри моей домашней директории), так как я единственный пользователь, использующий эту машину. Если вы хотите, чтобы он был глобальным, вставьте его/Library/LaunchAgents
.Этот файл должен принадлежать
root
и иметь600
разрешения:После того, как вы выйдете из системы / войдете в систему или перезагрузите систему, агент запуска запустится и начнет работать в зависимости от того, куда вы поместили файл (ваш домашний каталог или глобальный). Но если вы не хотите этого делать и хотите, чтобы он загружался сейчас, выполните следующую команду в командной строке. Вы должны сделать это только один раз.
Вот и все. Теперь IP вашего Mac изменится автоматически.
Примечание: работает на El Capitan тоже!
источник
Представляем Location Changer
Вот очень многообещающий скрипт для изменения сетевых расположений на основе WiFi SSID:
Он создан Антоном Епревым . Вы можете просмотреть код и более подробную документацию на GitHub:
Установка
Устанавливается через командную строку:
Он попросит вас ввести пароль root для установки
locationchanger
в/usr/local/bin
каталог.Это оно!
После этого, если существует сетевое местоположение , имя которого идентично имени (SSID) текущей сети WiFi , оно автоматически переключится на сетевое местоположение. В противном случае он переключится на Автоматическое определение местоположения. (Кстати, если нет места с именем « Автоматически» , оно жалуется в журналах и выходит.)
Сценарий для конкретного местоположения
Если вы хотите запускать сценарий каждый раз, когда вы подключаетесь к определенной сети WiFi, поместите эти сценарии
~/.locations
и назовите их в честь сетей WiFi, например~/.locations/Corp Wi-Fi
:И вы можете создать
~/.locations/Automatic
, чтобы сбросить эти изменения в других местах:Удостоверьтесь, что вы используете биты выполнения для скриптов (
chmod +x
).Псевдонимы
Вы можете поделиться сетевым расположением между несколькими сетями WiFi. Например, если у вас есть беспроводной маршрутизатор, который вещает одновременно на частотах 2,4 и 5 ГГц, вы можете создать файл конфигурации
~/.locations/locations.conf
и поместить простые пары ключ-значение внутри:Здесь ключи - это имена сетей WiFi , а значения - соответствующие местоположения сети . Присоединяйтесь к ним с голыми знаками равенства (
=
без пробелов). В приведенном выше примере, если подключена сеть WiFi Home_WiFi_5GHz , она переключится на сетевое местоположение Home_WiFi .Обратите внимание, что псевдонимы местоположения имеют приоритет над правилом с тем же именем. В приведенном выше примере, только скрипт
~/.locations/Home_WiFi
будет работать при подключении к сети WiFi Home_WiFi_5GHz .При использовании псевдонимов местоположений вам даже не нужно создавать дополнительные сетевые местоположения для сопоставления имен сетей WiFi.
Поиск проблемы
Вы можете просмотреть расширенные журналы с помощью следующей команды:
Пример вывода:
Пробные
Сначала выгрузите агент запуска:
Затем удалите двоичный файл, plist и файл журнала:
Вы также можете удалить файлы конфигурации и специфичные для местоположения сценарии внутри
~/.locations
:источник