私は、企業ネットワーク内の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を実行しています。
IPに接続しようとしましたか?その後何が起こるのですか? IPが動作する場合は、ドメインルックアップに問題があります。 – marr75