2011-12-18 11 views
4

私はTorをpythonとurllib2で使用しようとしていて、止まっています。Python urllib2 Tor 514認証が必要です

print opener.open('http://check.torproject.org/').read() 

そして

telnet 127.0.0.1 9051 

次は私に次のエラーを与える:しかし、私はurllib2の上の同じ514認証エラーが表示されます。ここでは

514 Authentication Required. 

は、私が使用するコードです.urlopen呼び出し。

import urllib2 
# using TOR ! 
proxy_support = urllib2.ProxyHandler({"http" : "127.0.0.1:9051"}) 
opener = urllib2.build_opener(proxy_support) 
urllib2.install_opener(opener) 
# every urlopen connection will then use the TOR proxy like this one : 
urllib2.urlopen('http://www.google.com').read() 

これがなぜ発生するのかについてのご意見はありますか?

TorのVidaliaのブラウザ - >設定 - >詳細:私は

答えて

1

Google検索suggests(とは、Torのマニュアルconfirms)9051であることがTorののPythonの2.65 urllib2のTorのを使用しています

'をランダムに生成する' に設定された認証デフォルトの制御ポート。実際のプロキシは、使用する必要があるポート9050で既定で実行されています。しかし、Vidaliaは余分な設定をせずにデフォルトのポートを使用しません。

もう1つの問題は、urllib2がデフォルトでSOCKSプロキシで動作できないことです。可能な解決策については、twoquestionsを参照してください。

+0

私は9051を9050に置き換えましたが、今度は「接続が拒否されました」というメッセージが表示されます。私はLinux用のTorブラウザバンドルを使用しています。 TorはVidaliaコンソールを介して実行されています。ログファイルには、「127.0.0.1:9051の開かれているコントロールリスナー」が表示されます。 9050ポートを有効にする必要がありますか?私が 'netstat -a | grep 905'を実行すると、9051ポートが表示されます。それは私が紛失している単純なものでなければなりません。 –

+0

私はソックスポートを有効にする方法を見つけました。 Tor ./Data/Tor/torrcファイルでは、SocksPortをautoから9050に変更しました。そこで、netstatを実行したときに9050がリッスンしています。今度は次の問題は、9050を使用すると、urllib2が 'TorはHTTPプロキシではありません。ですから、Torと連携するためにはprivoxyのようなHTTPプロキシを使わなければならないようです。そうでない場合は、私に知らせてください。 –

+0

バンドル内のVidaliaのように見えるのは、デフォルト以外のポートを使用しているようです...メッセージログ - Vidaliaのアドバンスでは、 "Socks listeners on port "のような行が含まれていなければなりません。または、ポートを切り替えてください。 – Tanriol

関連する問題