如何在Google App Engine上找到域名的IP地址?

时间:2011-06-25 02:10:32

标签: python google-app-engine

我需要弄清楚我的应用程序在提供给提供的域的urlfetch时实际连接到哪个IP地址。我在生产服务器上的应用程序在连接到域时遇到问题,但使用我的计算机上的SDK可以很好地连接。我正在尝试调试此问题,并且我发现Google App Engine可能正在将域解析为与本地计算机不同的IP地址。

如果我有权访问套接字库,这就像socket.gethostbyname('thedomainiwant.com')一样简单,但不幸的是Google不允许App Engine上的套接字库。

有什么想法吗?

如果有一个需要Java或Go on App Engine的解决方案,我也愿意尝试。

2011年6月26日更新:

我改变了生产代码,直接使用IP只是为了让这个工作(它确实如此)但这不是一个很好的长期解决方案因为我不控制服务器我正在制作urlfetches所以IP可能会在没有警告的情况下改变我。

返回的标头在这种情况下没有帮助,因为生产实例解析域的IP地址根本没有响应,请求超时。

如果我正在进行urlfetches的服务器阻止了App Engine,那么通过IP进行urlfetch也无法正常工作......但它确实有效。此外,我与管理服务器的团队交谈,他们确认他们没有阻止App Engine。我仍在纠缠他们以获取更多信息,但这似乎并不是一个问题。

2011年7月7日更新:

Google已确认他们的结果存在问题,影响了我的申请。他们已经应用了一些工作并正在修复。看这里: http://code.google.com/p/googleappengine/issues/detail?id=5244

3 个答案:

答案 0 :(得分:1)

目前无法在App Engine上进行名称解析。如果你想这样做,你将不得不通过HTTP调用外部服务。

答案 1 :(得分:0)

看一下响应标题,你可能会得到一个HOST标题,其中包含这个信息。

否则,为什么不在诊断时使用原始IP进行连接?

答案 2 :(得分:0)

您可以使用执行DNS查找的Web服务。您可以在URL中嵌入地址,如下所示:

http://www.dnswatch.info/dns/dnslookup?la=en&host=HOST_HERE&type=A&submit=Resolve

(替换HOST_HERE)然后解析结果。不幸的是它是HTML,但即使是简单的正则表达式也应该成功。你也可以尝试找一些服务,它允许一些XML输出等等 - 有很多这样的服务,只需在谷歌输入“dnslookup”,有人就可以拥有它。