Detectar programaticamente as configurações do proxy do sistema no Windows XP com Python

Desenvolvo uma aplicação crítica usada por uma empresa multinacional. Usuários em escritórios em todo o mundo precisam instalar esse aplicativo.

O aplicativo é na verdade um plugin para o Excel e nós temos um instalador automático baseado na easy_install do Setuptools que garante que todas as dependências de um projeto sejam automaticamente instaladas ou atualizadas sempre que um usuário ligar seu Excel. Tudo funciona de maneira muito elegante, pois os usuários raramente estão cientes de toda a instalação que ocorre inteiramente em segundo plano.

Infelizmente, estamos expandindo e abrindo novos escritórios, todos com diferentes configurações de proxy. Essas configurações parecem mudar de um dia para o outro, então não podemos acompanhar os seguranças terceirizados que mudam as coisas sem nos avisar. É uma droga, mas só temos que contornar isso.

Eu quero detectar programaticamente as configurações de proxy em todo o sistema nas estações de trabalho do Windows que nossos usuários executam:

Todos na organização organizam o Windows XP e o Internet Explorer. Eu verifiquei que todos podem baixar nossas coisas do IE sem problemas, independentemente de onde eles estão no mundo.

Então, tudo que preciso fazer é detectar quais configurações de proxy o IE está usando e fazer com que o Setuptools use essas configurações. Teoricamente todas essas informações devem estar no Registro .. mas existe uma maneira melhor de encontrá-lo que é garantido para não mudar com pessoas que atualizam o IE? Por exemplo, há uma chamada da API do Windows que eu possa usar para descobrir as configurações de proxy?

Em suma:

Nós usamos o Python 2.4.4 no Windows XPPrecisamos detectar as configurações de proxy do Internet Explorer (por exemplo, host, porta e tipo de proxy)Vou usar essas informações para reconfigurar dinamicamente o easy_install para que ele possa fazer o download dos arquivos Ovo por meio do proxy.

UPDATE0:

Esqueci um detalhe importante: cada site tem um arquivo "pac" de configuração automática.

Há uma chave em Windows \ CurrentVersion \ InternetSettings \ AutoConfigURL que aponta para um documento HTTP em um servidor local que contém o que parece um arquivo javascript.

O script pac é basicamente uma série de instruções if aninhadas que comparam as URLs com um regexp e depois retornam o nome do host do servidor proxy escolhido. O script é uma função única de javascript chamada FindProxyForURL (url, host)

O desafio é, portanto, descobrir, para qualquer servidor, qual proxy usar. A única maneira 100% garantida de fazer isso é procurar o arquivo pac e chamar a função Javascript do Python.

Alguma sugestão? Existe uma maneira mais elegante de fazer isso?

questionAnswers(2)

yourAnswerToTheQuestion