我有一個奇怪的問題。我有這樣的Python應用程序,當我嘗試在應用程序中打開一個網址,例如:urllib2.urlopen("http://google.com", None)
我收到以下錯誤:getaddrinfo無法解析主機
IOError: [Errno socket error] [Errno 8] nodename nor servname provided, or not known
然而,當我做了Python命令行解釋同樣的事情,它工作正常。應用程序和命令行都使用相同的python可執行文件。
nslookup google.com
似乎正常工作。我打開wireshark,它看起來像當應用程序試圖打開google.com
只有mDNS查詢出去"My-Name-MacBook-Pro.local"
。但是,當命令行嘗試打開google.com
時,會出現一個正常的DNS查詢"google.com"
我發現如果我在/etc/hosts
中對Google的IP進行了硬編碼,則來自應用程序的請求最終開始工作。
看起來有點奇怪,必須改變應用程序如何解析域名,但我不知道該怎麼做。
我正在運行Mac OSX 10.6.7和Python 2.6。
編輯:我不使用代理服務器來訪問互聯網
你實際使用'urllib'或'urllib2'樣?請更正你的問題,如果'的urllib2標籤'是錯的。 – agf
你使用代理來訪問互聯網嗎? – monkut