2011-02-15 6 views
1

J'ai ouvert un tunnel ssh avec ssh -D localhost:5678 [email protected] et je veux l'utiliser dans mon application python3.impossible d'accéder au site Web avec urllib et proxy

#!/usr/bin/python3.1 
# -*- coding:Utf-8 -*- 

import urllib.request 

proxyhand = urllib.request.ProxyHandler({"socks" : "http://localhost:5678"}) 
opener = urllib.request.build_opener(proxyhand) 
page = opener.open("http://www.mysite.com") 

Où mysite.com ne peut être accessible à partir du réseau sur server.com (c'est pourquoi j'utiliser un tunnel ssh).

Il fonctionne pour accéder à n'importe quel autre site Web sans limitations, mais pour mysite.com j'ai une erreur de délai de connexion. Le tunnel fonctionne comme je peux accéder à mysite.com en utilisant firefox configuré as explained here.

Merci

Répondre

0

Si vous utilisez http comme protocole, non socks? Ainsi:

proxyhand = urllib.request.ProxyHandler({"http" : "http://localhost:5678"}) 
+0

Avec "http", j'ai une exception "BadStatusLine" pour n'importe quel site Web. –

+1

SOCKS est correct pour la redirection SSH. Je pense que le problème est que 'urllib' n'a pas de support SOCKS. Vous pourriez avoir un autre cerceau pour sauter à travers pour obtenir ce travail. Essayez ceci: http://stackoverflow.com/questions/2317849/how-can-i-use-a-socks-4-5-proxy-with-urllib2 – jathanism

+0

c'est pour python 2.x mais ça marche. Je vous remercie ! –