2010-11-18 13 views
0

私は、企業ネットワーク内のURLを読み込もうとしています。 Spesifically私が接してるサーバは、1つの事業所であり、クライアントPCは別である:私はこの関数を実行するたびにurllib2.urlopen()がプロキシ経由で接続する原因は何ですか?

print(urlopen(r"http://london.mycompany/mydir/").read()) 

は私が取得:

Traceback (most recent call last): 
    File "<stdin>", line 1, in ? 
File "C:\Python24\lib\urllib2.py", line 130, in urlopen 
    return _opener.open(url, data) 
File "C:\Python24\lib\urllib2.py", line 364, in open 
    response = meth(req, response) 
File "C:\Python24\lib\urllib2.py", line 471, in http_response 
    response = self.parent.error(
File "C:\Python24\lib\urllib2.py", line 402, in error 
return self._call_chain(*args) 
File "C:\Python24\lib\urllib2.py", line 337, in _call_chain 
result = func(*args) 
File "C:\Python24\lib\urllib2.py", line 480, in http_error_default 
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 
urllib2.HTTPError: HTTP Error 407: Proxy Authentication Required 

奇妙なことは、間にファイアウォールがないということですこれらの2台のコンピュータは、何らかの理由でURLが会社外のコンテンツに接続するために通常使用するプロキシ経由でWebサーバーに接続することを決めました。この場合、認証されていないため失敗します。

クライアントPCで障害が発生していることは間違いありません。Windows用のTCPViewを使用してトランザクションを監視すると、2台のコンピュータ間に接続があることを確認するためにnslookupとpingをサーバーに行いましたpython.exeプロセスが完全に異なるサーバーに接続していることがわかります(プロキシ!)。

これは何が原因でしょうか? os.environ ["http_proxy"]変数は設定されていないことに注意してください。この変数は、urllibをプロキシサーバー経由で接続するためによく使用されます。ここではそうではありません。同じ効果があるかもしれない何か他にもありますか?

非常にロックダウンされた企業環境でWindows XP 32ビット版Python 2.4.4を実行しています。

+0

IPに接続しようとしましたか?その後何が起こるのですか? IPが動作する場合は、ドメインルックアップに問題があります。 – marr75

答えて

2

システム設定から読み込みます。 Use urllib.FancyURLOpener

opener = urllib.FancyURLopener({}) 
f = opener.open("http://london.mycompany/mydir/") 
f.read() 
+0

しかし、どのシステム設定が読んでいるのですか? –

+0

@Salimレジストリ/システムplistファイル(OSによって異なります)。 – khachik

+0

Windows 32bit上のPython2.4.4 - あなたは私をspesific設定に向けることができますか?これを無効にする方法があるかどうか知っていますか? –

関連する問題