我在Google App Engine上运行了一个HttpServlet。我的doGet()方法如下所示:
public class IpServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
String ra = req.getRemoteAddr();
resp.setContentType("text/plain");
resp.setCharacterEncoding("UTF-8");
resp.getWriter().write(ra);
}
}
我希望此getRemoteAddr始终返回IPv4地址。以下答案似乎表明这是可配置的:
HttpServletRequest.getRemoteAddr() in Tomcat returns IPv6 formatted IP address
我可以以某种方式将此参数-Djava.net.preferIPv4Stack = true添加到我的Google App Engine启动命令行吗?在appengine-web.xml或web.xml中可能吗?
修改
经过一番调查后,我将以下内容添加到appengine-web.xml中的系统属性中:
<property name="java.net.preferIPv4Stack" value="true"/>
但这似乎并没有按预期发挥作用。