Мне нужно выяснить, к какому IP-адресу фактически подключается мое приложение, когда оно выполняет urlfetch для указанного домена. У моего приложения на рабочем сервере возникают проблемы с подключением к домену, но подключение работает отлично, используя SDK на моем компьютере. Я пытаюсь отладить эту проблему, и мне пришло в голову, что Google App Engine может разрешить домен с другим IP-адресом, чем мой локальный компьютер.
Если бы у меня был доступ к библиотеке сокетов, это было бы так же просто, как socket.gethostbyname ('thedomainiwant.com'), но, к сожалению, Google не разрешает библиотеку сокетов в App Engine.
Есть идеи?
Если есть решение, которое требует Java или Go на App Engine, я тоже хочу попробовать.
Обновление от 26 июня 2011 года:
Я изменил производственный код, чтобы сразу использовать IP-адрес, просто чтобы заставить его работать (и он работал), но это не очень хорошее долгосрочное решение, так как я не контролирую сервер, к которому я делаю urlfetches, чтобы IP может измениться без предупреждения.
Возвращенные заголовки не будут полезны в этом случае, потому что какой-либо IP-адрес, на который рабочий экземпляр разрешает домен, вообще не отвечает, и время ожидания запроса истекло.
Если сервер, на котором я делаю urlfetch, блокирует App Engine, то выполнение urlfetch по IP тоже не будет работать ... но это работает. Кроме того, я поговорил с командой, управляющей сервером, и они подтвердили, что не блокируют App Engine. Я все еще приставаю к ним для получения дополнительной информации, но, похоже, это не проблема.
Обновление от 7 июля 2011 года:
Google подтвердил, что с их стороны возникла проблема, которая затронула мое приложение. Они применили решение и работают над исправлением. Посмотреть здесь:
http://code.google.com/p/googleappengine/issues/detail?id=5244