如何在googleappengine上找出域名的IP地址?

2024-03-29 08:05:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要弄清楚我的应用程序在对提供的域进行urlphetch时实际连接的IP地址。我在生产服务器上的应用程序连接到域时遇到问题,但使用我计算机上的SDK进行连接工作得非常好。我正在尝试调试这个问题,我突然想到googleappengine可能正在将域解析为与本地计算机不同的IP地址。在

如果我可以访问socket库,这将简单到socket.gethostbyname('thedomaininwant.com网站'但不幸的是,Google不允许在appengine上使用socket库。在

有什么想法吗?在

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

更新日期:2011年6月26日:

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

在这种情况下,返回的头将没有任何帮助,因为无论生产实例将域解析到哪个IP地址,都没有响应,并且请求超时。在

如果我正在进行urlphetch的服务器阻塞了App引擎,那么通过IP进行urlphetch也不起作用……但是它确实起作用了。另外,我和管理服务器的团队谈过了,他们确认他们没有阻塞App Engine。我仍然缠着他们要更多的信息,但这似乎不是问题。在

更新日期:2011年7月7日:

谷歌已经证实,他们那边有个问题影响了我的应用程序。他们已经申请了一个变通办法,正在进行修复。请看这里: http://code.google.com/p/googleappengine/issues/detail?id=5244


Tags: ip服务器comapp应用程序计算机sdk情况
3条回答

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

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

(在这里替换主机_)然后解析结果。不幸的是,它是HTML,但即使是简单的regex也可以。你也可以尝试找到一些服务,它允许一些XML输出,或者说,有很多这样的服务,只要在谷歌输入“dnslookup”,有人可能就有了。在

目前无法在appengine上进行名称解析。如果您想这样做的话,您必须通过HTTP调用外部服务。在

请看一下响应头,您可能会得到一个主机报头,其中正好包含此信息。在

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

相关问题 更多 >