我有一个奇怪的问题。我有这样的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