Eu tenho vários locais de rede configurados no meu laptop: Trabalho, Casa, etc. Todos os profissionais têm um servidor proxy configurado, enquanto os outros não. Isso funciona bem para aplicativos OSX - Safari, Mail, até Firefox e Thunderbird com o plugin System Proxy .
Para aplicações de terminais, tais como git
, svn
, gem
, e curl
eu tenho o seguinte no meu .bash_profile
:
export HTTP_PROXY='http://proxy.mycompany.com:80'
export http_proxy=$HTTP_PROXY
Minha pergunta é a seguinte: existe alguma maneira de fazer a variável exportada procurar o valor da localização atual do meu sistema? Eu preferiria que fosse feito dinamicamente (por isso, se eu mudar de local durante uma sessão de terminal, ele mudará), mas ficaria feliz com apenas uma que o definisse quando .bash_profile
executada (o que significa que eu teria que iniciar uma nova sessão de terminal quando mudei de local).
Obrigado!
Respostas:
Qual versão do Mac OS X? Não tenho certeza de que a ferramenta esteja incluída no Mac OS X 10.4 ou anterior.
networksetup
deve ser o que você está procurando, a sabersudo networksetup -getwebproxy NAME_OF_NETWORK_DEVICE
(por exemplo: sudo networksetup -getwebproxy Airport)A saída é a seguinte:
Então, você precisará converter a saída em algo utilizável.
Um exemplo realmente grosseiro usando o awk algumas vezes (minhas habilidades no awk são bastante básicas) seria:
Resultados em uma saída
http://SERVER_ADDRESS:123
fonte
networksetup -listallnetworkservices
sudo networksetup -getwebproxy Ethernet
, recebo a impressão e, em seguida, um segfault. Imagino que o segfault faça com que o cano se quebre, para queawk
nunca haja nada para analisar.awk
. Adicionar o awk faz com que a mensagem segfault desapareça. . . junto com todas as outras saídas.Na resposta acima , há um comentário do tlrobinson sobre como ele não inclui o número da porta.
Você pode fazer isso alternando o Servidor Proxy HTTP com a Porta Proxy HTTP
Eu também vi isso feito assim:
fonte
Além disso, este comando pode ajudar a descobrir outras configurações de proxy:
scutil --proxy
fonte
O seguinte parece funcionar, mas não tenho certeza de quão robusto é:
Não funcionará se o seu local usar um
proxy.pac
local de proxy codificado em vez de codificado.fonte
Você poderia usar a pequena ferramenta que escrevi, que define as variáveis de ambiente comumente usadas para proxies. O uso é direto:
Adicionar:
ao seu
.profile
,.bashrc
ou.bash_profile
.Depois disso, você pode usar variáveis como
$HTTP_PROXY
,$http_proxy
,$HttpProxy
, etc. para todos os protocolos (HTTP, FTP, SOCKS), incluindo as$NO_PROXY
exceções. Isso funcionará para a maioria das ferramentas da CLI e obtém as configurações do painel de controle do OS X.fonte