2014-02-26 47 views
0

我注意到python的socket.getaddrinfo()有些奇怪的行爲。重新連接期間的getaddrinfo行爲

如果我連接到無線網絡和呼叫socket.getaddrinfo(),它的工作原理(當然它!):

In [3]: socket.getaddrinfo('charlesleifer.com', 80) 
Out[3]: 
[...] 

如果我斷開,那麼我會收到一個錯誤:

In [4]: socket.getaddrinfo('charlesleifer.com', 80) 
    --------------------------------------------------------- 
    gaierror         Traceback (most 
    <ipython-input-2-d333ec6c75af> in <module>() 
    ----> 1 socket.getaddrinfo('charlesleifer.com', 80) 

最後,如果我重新連接,它將再次工作。

現在這裏是怪異的部分。

如果我通過關閉我的WiFi開始,打開一個終端蟒蛇,和socket.getaddrinfo調用,如預期我會收到同樣的錯誤之前

In [2]: socket.getaddrinfo('charlesleifer.com', 80) 
--------------------------------------------------------- 
gaierror         Traceback (most 
<ipython-input-2-d333ec6c75af> in <module>() 
----> 1 socket.getaddrinfo('charlesleifer.com', 80) 

gaierror: [Errno -2] Name or service not known 

但是,當我把我的WiFi無論我嘗試多少次,我都會繼續收到同樣的錯誤!我可以嘗試其他主機,它也會失敗。

如果手動將條目添加到我的/etc/hosts文件中,那麼它將返回我放入主機文件中的所有內容。但其他請求仍然失敗。

這是怎麼回事?我很難過。

回答

相關問題