我正在将我们的系统迁移到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