java.net.InetAddress不适用于GAE免费套餐

时间:2014-08-21 05:05:54

标签: java google-app-engine

我有这个代码需要与GAE一起运行,

public class RootServerResource extends ServerResource {
  @Get("json")
  public String represent() {
    String client = getRequest().getClientInfo().getAddress();
    InetAddress addr = null;
      try {
          addr = InetAddress.getByName(client);
      } catch (UnknownHostException e) {
          e.printStackTrace();
      }
    String domain = addr.getHostName();
    return "hello, world (from the cloud!), your client domain is: " + domain;
  }
}

但它抛出:

  

引起:   com.google.apphosting.api.ApiProxy $ FeatureNotEnabledException:The   一旦结算,将为此应用程序启用套接字API   在管理控制台中启用。

是否有解决此问题的方法,有没有办法通过GAE从IP获取域名?某种方式不会调用Socket API。

1 个答案:

答案 0 :(得分:1)

域查找需要出站套接字,因此您需要让应用程序可以访问Socket API。正如文档所说Sockets API is only available for paid apps

其中一种方法是使用具有HTTP接口的反向域查找服务,例如:http://www.statdns.com/api/(请参阅页面末尾的反向PTR记录)。