Python et proxy - urllib2.URLError: <urlopen erreur [Errno 110] Connection timed out>

J'ai essayé de google et la recherche pour la même question sur stackOverflow, mais ne peut toujours pas résoudre mon problème.

J'ai besoin de mon script python pour effectuer les connexions http via proxy.
Ci-dessous mon script de test:

import urllib2, urllib

proxy = urllib2.ProxyHandler({'http': 'http://255.255.255.255:3128'})
opener = urllib2.build_opener(proxy, urllib2.HTTPHandler)
urllib2.install_opener(opener)

conn = urllib2.urlopen('http://www.whatismyip.com/')
return_str = conn.read()

webpage = open('webpage.html', 'w')
webpage.write(return_str)
webpage.close()

Ce script fonctionne très bien sur mon ordinateur (Windows 7, Python 2.7.3), mais lorsque je tente de l'exécuter sur le serveur, il me donne l'erreur suivante:

Traceback (most recent call last):
  File "proxy_auth.py", line 18, in <module>
    conn = urllib2.urlopen('http://www.whatismyip.com/')
  File "/home/myusername/python/lib/python2.7/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/home/myusername/python/lib/python2.7/urllib2.py", line 400, in open
    response = self._open(req, data)
  File "/home/myusername/python/lib/python2.7/urllib2.py", line 418, in _open
    '_open', req)
  File "/home/myusername/python/lib/python2.7/urllib2.py", line 378, in _call_chai                                              n
    result = func(*args)
  File "/home/myusername/python/lib/python2.7/urllib2.py", line 1207, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "/home/myusername/python/lib/python2.7/urllib2.py", line 1177, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [Errno 110] Connection timed out>

J'ai aussi essayé d'utiliser les demandes bibliothèque, et j'ai obtenu le même message d'erreur.

# testing request library
r = requests.get('http://www.whatismyip.com/', proxies={'http':'http://255.255.255.255:3128'})

Si je n'ai pas configurer le proxy, puis le programme fonctionne très bien.

# this works fine
conn = urllib2.urlopen('http://www.whatismyip.com/')

Je pense que le problème est que sur mon compte d'hébergement partagé, il n'est pas possible de définir une variable d'environnement pour les proxy ... ou quelque chose comme ça.

Sont là des solutions de contournement ou d'autres approches qui serait permettez-moi de procurations pour les connexions http? Comment dois-je modifier mon script de test?

ping www.whatismyip.com sur le serveur?
ping: icmp open socket: Operation not permitted
quel système d'exploitation est le serveur? Il me semble que le serveur n'est pas configuré pour autoriser les requêtes http dans la façon dont vous vous attendez. Aussi, vous dites "si je n'ai pas configurer le proxy, puis le programme fonctionne" -....ne pas définir le proxy et profiter d'un programme de travail!!??!!?
Chers Vosrsprung! Le système d'exploitation Debian est, autant que je sache. J'ai une raison pour utiliser le proxy, de sorte que votre suggestion à propos de "pas de réglage du proxy" n'est pas très utile, ni appropriée.
J'ai ouvert un billet sur mon hébergeur du soutien technique, et ils ont répondu que la plupart des ports sur leurs serveurs sont fermés par défaut et d'ouvrir les ports, j'ai besoin d'acheter une adresse IP dédiée.

OriginalL'auteur Olexiy | 2013-05-27