gpt4 book ai didi

java - 如何从桌面应用程序调用我们的网络服务获取公共(public)IP

转载 作者:行者123 更新时间:2023-12-02 11:53:05 27 4
gpt4 key购买 nike

我需要捕获调用我们的 api 的系统的公共(public) IP,该系统是一个调用我们的其余 api 的桌面应用程序,我正在使用以下代码

    @RequestMapping(value = "/api", method = RequestMethod.POST)
public @ResponseBody JSON_Response sendMessage(@RequestBody Objectjson objjson,HttpServletRequest
request) {

LOG.debug("sending message via payless server");
inputjson.setSentFrom("Message Sent From Api");
// inputjson.setHostip(""+request.getRemoteHost());
//I am using following to capture it
LOG.debug("--------------------------"+request.getRemoteUser());
LOG.debug("--------------------------"+request.getLocalAddr());
LOG.debug("--------------------------"+request.getRemoteHost());
LOG.debug("--------------------------"+request.getPathInfo());
LOG.debug("--------------------------"+request.getPathTranslated());
LOG.debug("--------------------------"+request.getRemoteUser());
LOG.debug("--------------------------"+request.getRemoteUser());
LOG.debug("--------------------------"+request.getRemoteUser());
LOG.debug("--------------------------"+request.getRemoteUser());
LOG.debug("--------------------------"+request.getRemoteUser());
JSON_Response response = sendMessageInterface.processInput(inputjson);
LOG.debug("sending response message " + response.getStatusDescription());

return response;
}

我在 IP 地址中获取自己的服务器 IP。如果我从 postman 调用其余 api,我将获得正确的 IP 地址。

如果您找到任何其他方法来检索公共(public) IP,请告诉我。

我正在使用 Wildfly 服务器 wildfly-10.1.0.Final

最佳答案

这是我用来获取远程用户IP地址的方法。希望对您有帮助

public HttpServletRequest getRequest() {
RequestAttributes attribs = RequestContextHolder.getRequestAttributes();
if (attribs instanceof ServletRequestAttributes) {
HttpServletRequest request = ((ServletRequestAttributes)attribs).getRequest();
return request;
}
return null;
}

public String getClientIp() {
String remoteAddr = "";
HttpServletRequest request = getRequest();
if (request != null) {
remoteAddr = request.getHeader("X-FORWARDED-FOR");
if (remoteAddr == null || remoteAddr.trim().isEmpty()) {
remoteAddr = request.getRemoteAddr();
}
}
return remoteAddr;
}

关于java - 如何从桌面应用程序调用我们的网络服务获取公共(public)IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47753791/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com