2016-04-18 2 views

ответ

2

Метод 1

Мы можем использовать awk для разбора вывода scutil и извлечения конфигурации прокси-сервера. Следующий фрагмент кода делает трюк:

$ export http_proxy=`scutil --proxy | awk '\ 
/HTTPEnable/ { enabled = $3; } \ 
/HTTPProxy/ { server = $3; } \ 
/HTTPPort/ { port = $3; } \ 
END { if (enabled == "1") { print "http://" server ":" port; } }'` 
$ export HTTP_PROXY="${http_proxy}" 

Этот скрипт ищет HTTPEnable, HTTPProxy и HTTPPort на выходе scutil. Если прокси-сервер включен, сценарий выдает URL-адрес прокси-сервера и устанавливает его как переменную среды http_proxy. Если прокси-сервер не включен, сценарий устанавливает http_proxy в пустую строку. В последней строке задается переменная окружения HTTP_PROXY, так как некоторые приложения из командной строки используют это вместо этого.

Размещение этого фрагмента в вашем .bash_profile гарантирует, что ваш прокси-сервер будет автоматически настроен при переключении между проводными и беспроводными сетями.

Метод 2

Вы могли бы попробовать создать Баш сценарий входа, который использует один из следующих видов использования «networksetup» перечислить текущий прокси-сервер, а затем разобрать адрес сервера и применить его к текущему терминальная сессия:

networksetup -getftpproxy <servicename> 
networksetup -getwebproxy <servicename> 
networksetup -getsecurewebproxy <servicename> 
networksetup -getstreamingproxy <servicename> 
networksetup -getgopherproxy <servicename> 
networksetup -getsocksfirewallproxy <servicename> 

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

Способ 3 Терминал не использует настройки прокси-сервера, настроенные в области предпочтений сети, поскольку он не имеет никакого соединения. Терминал просто позволяет вам запускать команды, которые будут использовать сеть по-разному.

export http_proxy="username:[email protected]:port" 

ссылка: https://dmorgan.info/posts/mac-network-proxy-terminal/

0

Я написал little tool, что делает именно это. Использование прост.

  1. Скомпилируйте его с помощью xCode.
  2. Добавить:

    eval `./path/to/export-proxies` 
    

    к вашему .profile, .bashrc или .bash_profile.

Он будет устанавливать все часто используемые переменные окружения прокси ($HTTP_PROXY, $http_proxy, $HttpProxy и т.д.) для всех протоколов (HTTP, FTP, SOCKS), включая все исключения, как это определено в панели управления OS X.

Предложения и улучшения также всегда приветствуются;)

EDIT Я просто видел, как вы хотите, чтобы установить параметры, а не читать их. Я пока не нашел способ сделать это. Но будем рады узнать иначе ...

Смежные вопросы