在我的Amazon EC2实例上:
~$ curl -XGET https://www.googleapis.com/books/v1/volumes?q=Mark+Twain
{
"error": {
"errors": [
{
"domain": "global",
"reason": "unknownLocation",
"message": "Cannot determine user location."
}
],
"code": 503,
"message": "Cannot determine user location."
}
}
来自我的笔记本电脑的相同请求产生了正确的响应 - 以JSON格式预订数据。
我做错了什么?这是亚马逊的网络配置吗?是谷歌吗?那是我吗?只知道其他可用区域中的EC2用户是否看到此请求的相同错误。
答案 0 :(得分:0)
我知道这是一个非常古老的问题,但它仍然值得回答......
Google会返回上面指定的错误:
无法确定IP的位置时。它的许多书籍的许可协议需要知道你在哪里。
当IP在内部黑名单中作为开放代理时。众所周知,EC2可用于托管代理,也许您之前的IP所有者已被Google标记。
当存在X-forwarded-for标头时(这将被各种代理附加),而是使用该IP。如果这是一个内部IP(如10.0.0.1),谷歌抱怨。这对于一个vanilla EC2实例来说不应该是一个问题,因为你有一个外部流量的外部IP地址,但是如果你正在使用VPC或VPN做某事,可能会发生疯狂。
我今天无法为us-east重现此错误,但仅在随机可用区中测试了一个实例。