J'ai plusieurs emplacements réseau configurés sur mon ordinateur portable: bureau, domicile, etc. Cela fonctionne bien pour les applications OSX - Safari, Mail, même Firefox et Thunderbird avec le plugin System Proxy .
Pour les applications de terminaux tels que git
, svn
, gem
et curl
je suit dans mon .bash_profile
:
export HTTP_PROXY='http://proxy.mycompany.com:80'
export http_proxy=$HTTP_PROXY
Ma question est la suivante: existe-t-il un moyen de faire en sorte que la variable exportée recherche la valeur de l'emplacement actuel de mon système? Je préférerais que cela se fasse de manière dynamique (donc si je change d'emplacement pendant une session de terminal, cela changera), mais je serais content d'un seul qui le définisse lors de son .bash_profile
exécution (ce qui signifie que je devrais démarrer une nouvelle session de terminal quand j'ai changé de lieu).
Merci!
Réponses:
Quelle version de Mac OS X? Je ne suis pas certain que l'outil soit inclus avec Mac OS X 10.4 ou une version antérieure.
networksetup
devrait être ce que vous recherchez, à savoirsudo networksetup -getwebproxy NAME_OF_NETWORK_DEVICE
(par exemple, sudo networksetup -getwebproxy Airport)La sortie se présente comme suit:
Vous devrez donc convertir la sortie en quelque chose d’utilisable.
Un exemple vraiment grossier utilisant awk plusieurs fois (mes compétences en awk sont plutôt basiques) serait:
Résultats dans une sortie
http://SERVER_ADDRESS:123
la source
networksetup -listallnetworkservices
sudo networksetup -getwebproxy Ethernet
, j'obtiens l'impression puis un défaut de segmentation. J'imagine que la faute de segmentation fait casser le tuyau, doncawk
n'a jamais rien à analyser.awk
. L'ajout de l'awk fait disparaître le message segfault. . . ainsi que toutes les autres sorties.Dans la réponse ci - dessus , il y a un commentaire de tlrobinson sur la façon dont il n'inclut pas le numéro de port.
Vous pouvez le faire en désactivant le serveur proxy HTTP avec le port proxy HTTP
J'ai également vu cela se faire comme ceci:
la source
De plus, cette commande peut aider à découvrir d'autres paramètres de proxy:
scutil --proxy
la source
Ce qui suit semble fonctionner, mais je ne suis pas sûr de sa robustesse:
Cela ne fonctionne pas si votre emplacement utilise un
proxy.pac
emplacement proxy au lieu d'un emplacement codé en dur.la source
Vous pouvez utiliser le petit outil que j'ai écrit, qui définit les variables d'environnement couramment utilisées pour les proxys. L'utilisation est simple:
Ajouter:
à votre
.profile
,.bashrc
ou.bash_profile
.Après cela , vous pouvez utiliser des variables comme
$HTTP_PROXY
,$http_proxy
,$HttpProxy
, etc. pour tous les protocoles (HTTP, FTP, SOCKS) , y compris les$NO_PROXY
exceptions. Cela fonctionnera pour la plupart des outils CLI et obtiendra les paramètres à partir du panneau de configuration OS X.la source