2011-10-22 61 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']'是獲得正確地址的標準方法。 –

相關問題