2011-10-22 96 views
0

我想在运行dev_appserver.py时获取Google App Engine中的主机名,因为GAE正在请求外部服务器,并且该服务器需要知道在哪里发送它的回应。从Google App Engine获取非本地主机名dev_appserver

不幸的是,规范的Python的方式似乎并没有工作,是:

import socket 
socket.gethostbyname(socket.gethostname()) 

socket库不GAE工作。

此外,

os.environ['HTTP_HOST'] 
os.environ['SERVER_NAME'] 

都是本地主机。

如何获得外部服务器连接到GAE的IP?

感谢您阅读

回答

3

插座包可能在GAE沙箱被禁用。

您是否尝试过使用请求对象来确定它? http://docs.webob.org/en/latest/reference.html#id1

可能是最可靠的方法。

+0

虽然可能需要添加'--address = 192.168.xx'(其中192.168.xx是GAE侦听的地址)作为'dev_appserver.py'的参数,并且可以通过GAE连接到GAE该地址;请注意SERVER_NAME:SERVER_PORT在服务器上设置,而HTTP_HOST来自客户端(因此不可靠)。我使用的是Django而不是Webob,所以'request.META ['SERVER_NAME']'是获得正确地址的标准方法。 –

相关问题