我有这个代码需要与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。
答案 0 :(得分:1)
域查找需要出站套接字,因此您需要让应用程序可以访问Socket API。正如文档所说Sockets API is only available for paid apps。
其中一种方法是使用具有HTTP接口的反向域查找服务,例如:http://www.statdns.com/api/(请参阅页面末尾的反向PTR记录)。