У меня странная проблема. У меня есть это приложение Python, и когда я пытаюсь открыть URL-адрес в приложении, например urllib2.urlopen("http://google.com", None)
, я получаю следующую ошибку:
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"
Я обнаружил, что если я жестко закодировал IP-адрес Google в /etc/hosts
, тогда запрос из приложения, наконец, начал работать.
Кажется, что-то странное должно изменить то, как приложение разрешает доменные имена, но я понятия не имею, что могло бы сделать это.
Я использую Mac OSX 10.6.7 и Python 2.6.
Редактировать : Я не использую прокси для доступа в Интернет