我正在將我們的系統遷移到Google App Engine。Google App Engine服務器IP地址
當我們的PDF生成器需要外部資源(例如圖片)時,它執行內部HTTP請求(請求IP與用戶IP不同)。然後它也啓動一個不同的會話,所以我看不到用戶是否登錄。 爲了給予正確的權限,我需要檢查請求是否來自服務器IP。
在上面的代碼我檢查這個槽下面的代碼:
if($_SERVER['REMOTE_ADDR'] == $_SERVER['SERVER_ADDR']) {
return true;
}
但由於$ _ SERVER [「SERVER_ADDR」]不可用,這不能使用。
在新的代碼,我檢查這個槽下面的代碼:
$allowed_ips = array(
'127.0.0.1',
'8.35.201.100'
);
if(in_array($_SERVER['REMOTE_ADDR'], $allowed_ips)) { return true; }
的問題是;我不知道Google App Engine使用哪個IP地址執行內部請求。 我發現IP地址爲8.35.201.100作爲服務器地址,但是有更多的IP地址或可能的範圍。
任務隊列Google App Engine發出來自IP地址0.1.0.2(https://developers.google.com/appengine/docs/php/taskqueue/overview-push#Task_Execution)的請求。內部請求是否一樣?
映入眼簾,亨德里克
你可以使用請求標題而不是IP地址,標題告訴你這個請求來自appengine,它也告訴你appengine appID,所以你可以識別你自己的appengine應用程序 –
如何獲得這個請求標題?我嘗試了幾種方法($ _SERVER,getallheaders()),但沒有人給我請求源和appID – Hendrik