2011-02-15 4 views
1

ssh -D localhost:5678 [email protected]으로 ssh 터널을 열었으며 python3 응용 프로그램에서 사용하고 싶습니다.urllib 및 프록시를 사용하여 웹 사이트에 액세스 할 수 없습니다.

#!/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") 

여기서 mysite.com은 server.com의 네트워크에서만 액세스 할 수 있습니다 (ssh 터널을 사용하는 이유입니다).

제한없이 다른 웹 사이트에 액세스 할 수 있지만 mysite.com의 경우 접속 시간 초과 오류가 발생했습니다. 터널은 as explained here으로 구성된 firefox를 사용하여 mysite.com에 액세스 할 수 있습니다.

당신에게

답변

0

당신이 프로토콜로 http를 사용하는 경우,하지 socks 감사? 따라서 :

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

"http"를 사용하면 모든 웹 사이트에 "BadStatusLine"예외가 있습니다. –

+1

SOCKS는 SSH 리디렉션에 적합합니다. 문제는 'urllib'에 양말 지원이 없다는 것입니다. 이 작업을 수행하기 위해 건너 뛰기 위해 다른 후프가있을 수 있습니다. 이것을 시도하십시오 : http://stackoverflow.com/questions/2317849/how-can-i-use-a-socks-4-5-proxy-with-urllib2 – jathanism

+0

그것은 파이썬 2.x 용이지만 작동합니다. 고맙습니다 ! –

관련 문제